Docker-Container benötigen ein Netzwerk, um ihre Dienste bereitstellen zu können.
Docker bietet hierzu einige Netzwerktreiber an, die alle ihre Vor- und Nachteile haben. Den mitgelieferten Treibern gemeinsam ist der Umstand, dass die Dienste alle unter der selben Adresse zu erreichen sind wie der eigentliche Server. Läuft Docker bspw. auf 172.16.10.1 so sind auch die Container unter dieser IP zu erreichen. Verwenden 2 Container den gleichen Port, so muss man einen der Container entsprechend „umbiegen“ und die Abweichung im Kopf behalten. Je mehr Container betrieben werden, umso mehr Ausnahmen muss man sich merken.
Ein Ausweg hier bietet das sogenannte MacVLAN-Netz.
MacVLAN ist eine Technik, mit der mehrere MAC-Adressen an einen Netzwerkanschluss gebunden werden, um dadurch mehrere IP-Adressen für ein Endgerät zu erhalten.
Hierzu muss zunächst ein Netzwerk-Template angelegt werden, bevor das eigentliche Netzwerk angelegt werden kann. Also wird zunächst ein Netzwerk namens „macvlantemplate“ eingerichtet, bevor man das „richtige“ MacVLAN-Netzwerk einrichtet. In letzterem muss als Netzwerk dann „macvlantemplate“ ausgewählt werden.
Anschließend kann man den Containern das Netzwerk „MacVLAN“ zuordnen und hier die IP-Adresse festgelegt werden. Dabei gilt es aber aufzupassen, dass man nicht in einen Konflikt mit dem DHCP-Server gerät, welcher bspw. auf dem Router läuft!