Docker: Containern statische IPs zuweisen
Dieser Artikel ist bereits über 3 Jahre alt. Die Inhalte sind wahrscheinlich bereits überholt und nicht mehr aktuell.
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: eth0@if30: <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