Merge remote-tracking branch 'refs/remotes/origin/main'

This commit is contained in:
2023-09-28 21:33:43 +01:00

226
README.md
View File

@@ -1,107 +1,119 @@
# docker
[TOC]
## Volumes
### NFS
Notes:
docker-compose.yaml
```yaml
volumes:
volume00:
driver: local
driver_opts:
type: ${VOLUME_TYPE}
o: ${VOLUME_O}
device: "${VOLUME_DEVICE}"
```
.env
```text
VOLUME_TYPE="nfs"
# DNS server ip, RW:read and write
VOLUME_O="addr=10.10.1.1,rw"
# Folder on NFS Server
## Must exists on nfs server, or security errors when starting container
VOLUME_DEVICE=":/export/docker-volumes/volume00"
```
## Network
### Macvlan
#### Create
How to create a docker macvlan network
```bash
# run on host
docker network create -d macvlan --subnet=192.168.1.249/24 --gateway=192.168.1.1 -o parent=eth0 macvlan_network
```
#### Host comunication
if network required between host and docker container on a macvlan docker network
* Option 1 - Create another macvlan on host
* Setup vars
```bash
MACVLAN_NAME=macvlan_bridge
HOST_ETHERNET_ADP=eth0
NETWORK=192.168.1.0/24
```
* Create mavclan adapter
```bash
ip link add $MACVLAN_NAME link $HOST_ETHERNET_ADP type macvlan mode bridge
ip addr add $NETWORK dev $MACVLAN_NAME
ifconfig $MACVLAN_NAME up
```
* Add routing
```bash
ip route add $CONTAINER_MAVLAN_IP dev $MACVLAN_NAME
```
* Delete mavclan adapter
```bash
ifconfig $MACVLAN_NAME down
ip link del $MACVLAN_NAME
```
* Persisting macvlan configuration
Example:
* network: 192.168.1.0/24
* macvlan name:: macvlan_bridge
* macvlan static ip: 192.168.1.240/32
* docker containers on macvlan networks:
* 192.168.1.254
* 192.168.1.253
* 192.168.1.250
* 192.168.1.248
```text
# create/edit /etc/network/interfaces.d/macvlan_bridge
iface macvlan_bridge inet manual
pre-up ip link add macvlan_bridge link eth0 type macvlan mode bridge
pre-up ip addr add 192.168.1.240/32 dev macvlan_bridge
up ip link set macvlan_bridge up
post-up ip route add 192.168.1.254 dev macvlan_bridge
post-up ip route add 192.168.1.253 dev macvlan_bridge
post-up ip route add 192.168.1.252 dev macvlan_bridge
post-up ip route add 192.168.1.250 dev macvlan_bridge
post-up ip route add 192.168.1.248 dev macvlan_bridge
```
# docker
## Setup
### Alphine
source https://wiki.alpinelinux.org/wiki/Docker
```bash
apk add docker
addgroup username docker
rc-update add docker default
service docker start
```
## Volumes
### NFS
Notes:
docker-compose.yaml
```yaml
volumes:
volume00:
driver: local
driver_opts:
type: ${VOLUME_TYPE}
o: ${VOLUME_O}
device: "${VOLUME_DEVICE}"
```
.env
```text
VOLUME_TYPE="nfs"
# DNS server ip, RW:read and write
VOLUME_O="addr=10.10.1.1,rw"
# Folder on NFS Server
## Must exists on nfs server, or security errors when starting container
VOLUME_DEVICE=":/export/docker-volumes/volume00"
```
## Network
### Macvlan
#### Create
How to create a docker macvlan network
```bash
# run on host
docker network create -d macvlan --subnet=192.168.1.249/24 --gateway=192.168.1.1 -o parent=eth0 macvlan_network
```
#### Host comunication
if network required between host and docker container on a macvlan docker network
* Option 1 - Create another macvlan on host
* Setup vars
```bash
MACVLAN_NAME=macvlan_bridge
HOST_ETHERNET_ADP=eth0
NETWORK=192.168.1.0/24
```
* Create mavclan adapter
```bash
ip link add $MACVLAN_NAME link $HOST_ETHERNET_ADP type macvlan mode bridge
ip addr add $NETWORK dev $MACVLAN_NAME
ifconfig $MACVLAN_NAME up
```
* Add routing
```bash
ip route add $CONTAINER_MAVLAN_IP dev $MACVLAN_NAME
```
* Delete mavclan adapter
```bash
ifconfig $MACVLAN_NAME down
ip link del $MACVLAN_NAME
```
* Persisting macvlan configuration
Example:
* network: 192.168.1.0/24
* macvlan name:: macvlan_bridge
* macvlan static ip: 192.168.1.240/32
* docker containers on macvlan networks:
* 192.168.1.254
* 192.168.1.253
* 192.168.1.250
* 192.168.1.248
```text
# create/edit /etc/network/interfaces.d/macvlan_bridge
iface macvlan_bridge inet manual
pre-up ip link add macvlan_bridge link eth0 type macvlan mode bridge
pre-up ip addr add 192.168.1.240/32 dev macvlan_bridge
up ip link set macvlan_bridge up
post-up ip route add 192.168.1.254 dev macvlan_bridge
post-up ip route add 192.168.1.253 dev macvlan_bridge
post-up ip route add 192.168.1.252 dev macvlan_bridge
post-up ip route add 192.168.1.250 dev macvlan_bridge
post-up ip route add 192.168.1.248 dev macvlan_bridge
```