Hinweis:
Dieser Blogartikel ist älter als 5 Jahre – die genannten Inhalte sind eventuell überholt.
Am 03.02.2015 wurde Docker 1.5 veröffentlicht. Neben einer Reihe von Performance-Verbesserungen und der Umstellung auf GO Version 1.4 enthält dieses Release knapp ein halbes Dutzend neuer Features und Verbesserungen. Die wichtigsten fassen wir hier zusammen, Details dazu finden sich im umfangreichen Git-Merge-Log.
IPv6 Networking
Der Docker-Daemon unterstützt nun den Netzwerkbetrieb mit IPv6 zwischen Containern und der docker0-Bridge. Die neue Option --ipv6 aktiviert den IPv4/IPv6 Dualstack Mode. Die Docker Bridge erhält dadurch die IPv6 link-local Adresse fe80::1.
Für global routebare IPv6-Adressen setzt man mit der Option --fixed-cidr-v6 ein IPv6-Subnet:
1 |
/usr/bin/docker -d --ipv6 --fixed-cidr-v6="2001:db8:1::/64" |
In Version 1.5 ist es weiterhin erstmals möglich, jedem Container eine fixe (IPv6)-Adresse zuzuweisen. Hierbei wird an den vordefinierten IPv6 /80 Prefix (80 Bit) die MAC-Adresse (48 Bit) angehängt. Dadurch ergibt sich eine exakt vordefinierte IPv6-Adresse (80 + 48 = 128 Bit):
1 |
/usr/bin/docker run --mac-address="02:42:ac:11:42:13" |
Weitere Einzelheiten zum IPv6 Networking mit Docker finden sich in der offiziellen Docker-Dokumentation.
Neue Kommandos und Optionen
Schreibgeschützte Container
Die Root-Filesysteme der Docker-Container können nun mit der Daemon-Option --read-only auf nur lesbar gesetzt werden. In Kombination mit Volumes kann dadurch ein Container gezwungen werden, nur in Stellen zu schreiben, die auch persistiert werden.
Echtzeitstatistiken der Container-Auslastung
Das neue Docker-Kommando stats kann in Verbindung mit dem libcontainer Execution Backend fortlaufende Statistiken über CPU, Speicher- und I/O- Auslastung eines Containers ausgeben. Dies erfolgt analog zum Linux-Kommando top:
1 2 3 4 5 |
# docker stats <ContainerID> CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O 08f9107b1885 0.13% 166.8 MiB/15.65 GiB 1.04% 36.12 MiB/343.6 KiB |
Alternatives Docker File
Mittels der neuen Option -f
für das build
-Kommando läßt sich nun explizit ein alternatives Docker File angeben. Für ein einzelnes Projekt können so mehrere verschiedene Docker Files verwendet werden.
1 |
# docker build -f myDockerFile |
Ausgeführte Befehle und Neustarts innerhalb eines Containers inspizieren
Das inspect
-Kommando kann nun die ExecIDs
für alle docker exec
-Prozesse des jeweiligen Containers auflisten. Weiterhin zeigt es die Anzahl der Container-Neustearts an, falls eine Restart Policy verwendet wurde.
Zukunftsaussichten: Swarm & Co.
Mit Version 1.4 führte Docker sogenannte Labels ein, Key-Value-Paare, mit denen der Daemon beschriftet werden kann. Diese lassen sich allerdings bisher mit Docker alleine nicht sinnvoll nutzen. Deshalb entwickeln die Spezialisten bei Docker Inc. derzeit einige neue Tools für die Container-Orchestrierung. Diese sollen ab dem 2. Quartal 2015 in einer finalen Version zur Verfügung stehen. Eines dieser Tools ist Docker Swarm, das zum Aufbau und der Verwaltung eines Docker-Clusters dient. Über Labels kann die Verteilung der Container im Cluster gesteuert werden.
Mehr zu Swarm & Co. in einem späteren Blog-Beitrag.
Quellcode und Binärpakete
Docker 1.5 ist im Quellcode auf GitHub sowie als Binär-Paket für gängige Linux-Distributionen verfügbar.