Diese Anleitung soll helfen, ein am Docker Host anliegendes VLAN für Docker Container verfügbar zu machen. Dadurch können die Container komplett in das Netzwerk eingebunden werden. Einzelne Port-Freigaben für Container werden nicht mehr benötigt. Eine Doppelbelegung von Ports kann so vermieden werden.
In dieser Anleitung soll das VLAN mit der ID 2, anliegend auf dem Interface enp2s0f0 für Dockercontainer verfügbar gemacht werden.
sudo vi /etc/netplan/mynetplan-config.yaml
Inhalt von mynetplan-config.yaml
network: version: 2 ethernets: enp2s0f0: {} vlans: vlan.4: id: 4 link: enp2s0f0 dhcp4: no addresses: [192.168.3.9/24] gateway4: 192.168.3.1 nameservers: addresses: [192.168.3.1] vlan.2: id: 2 link: enp2s0f0 dhcp4: no addresses: [192.168.1.10/24] gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.1]
Konfiguration übernehmen sudo netplan apply
In dieser Anleitung soll das VLAN mit der ID 2, anliegend auf dem Interface bond0 für Dockercontainer verfügbar gemacht werden.
cd /etc/sysconfig/network-scripts sudo vi ifcfg-bond0.2
Inhalt von ifcfg-bond0.2
DEVICE=bond0.2 VLAN_ROW_DEVICE=bond0 VLAN_ID=2 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.10 NETMASK=255.255.255.0
Netzwerkdienste neustarten sudo /etc/rc.network restart
ip link del MYLAN ip link add MYLAN link bond0.2 type macvlan mode bridge ip addr add 192.168.1.80/32 dev MYLAN ip link set MYLAN up ip route add 192.168.1.80/28 dev MYLAN
docker network create -d macvlan \
--subnet=192.168.1.0/24 \
--gateway=192.168.1.1 \
--ip-range=192.168.1.80/28 \
--aux-address 'host=192.168.1.80' \
-o parent=bond0.2 MYLAN
$ docker run --rm -itd \ --network MYLAN \ --name my-alpine \ alpine:latest \ ash
Netzwerk vom neuen Container prüfen:
docker container inspect my-alpine
...truncated...
"Networks": {
"MYLAN": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"12f5c3c9ba5c"
],
"NetworkID": "c6203997842e654dd5086abb1133b7e6df627784fec063afcbee5893b2bb64db",
"EndpointID": "aa08d9aa2353c68e8d2ae0bf0e11ed426ea31ed0dd71c868d22ed0dcf9fc8ae6",
"Gateway": "192.168.1.1",
"IPAddress": "192.168.1.81",
"IPPrefixLen": 24,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:10:56:02",
"DriverOpts": null
}
}
...truncated