Seit Docker 1.10 kann man Containern bei der Erzeugung eine statische IP aus einem der Docker-eigenen Netzwerke zuweisen. Somit können ineinandergreifende Anwendungen (z.B. ein MariaDB-Server und das phpMyAdmin-Frontend) leichter und zuverlässiger konfiguriert werden.

Netzwerk anlegen

Statische IP-Adressen können nur in solchen Netzwerken vergeben werden, die vom Nutzer angelegt wurden.
Zur Erzeugung eines neuen Netzwerkes (hier: static-net im Bereich 172.18.0.0/16) reicht bereits folgender Befehl:

docker network create --subnet=172.18.0.0/16 static-net

Anschließend kann das neue Netz bei der Erzeugung eines Containers verwendet werden.

Container erzeugen

Hier müssen das gewünschte Netzwerk und die IP-Adresse angegeben werden.
Im Beispiel wird ein Alpine Linux Container erzeugt, der die IP 172.18.0.42 erhält:

docker run --net static-net --ip 172.18.0.42 -it alpine /bin/sh

In der Shell können Sie nun die Vergabe der IP-Adresse mittels ip addr verifizieren:

/ # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    	valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
    	valid_lft forever preferred_lft forever
29: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
    link/ether 02:42:ac:12:00:2a brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.42/16 scope global eth0
    	valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe12:2a/64 scope link
    	valid_lft forever preferred_lft forever