© Excellent backgrounds/Shutterstock.com
Java Magazin
Kolumne: Docker rockt Java

Docker Multi-Host Networking

Ein fehlender Baustein im Docker-Ökosystem ist der einheitliche Multi-Host-Network-Support. Dafür gibt es bisher mehrere Lösungen, die sich mit sehr speziellen Werkzeugen und Erweiterungen in einem Host integrieren lassen. Die Integration des Projekts libnetwork in die Docker Engine soll nun eine einheitliche und transparente Netzwerknutzung für Container realisieren.

Peter Roßbach


Auf der DockerCon 2015 in San Francisco wurde der Docker-Network-Multi-Host-Support erstmalig vorgestellt. Die Docker-Version 1.7 basiert nun komplett auf dem Projekt libnetwork [1]. In der Docker Engine ist der gewohnte Linux-Bridge-Support [2], [3], [4] verfügbar. Mit dem Release 1.9 ist der Multi-Host-Support nun offiziell verfügbar. Diese Kolumne beruht auf dem Experimental-1.9-Release, das nun täglich aktuell verfügbar ist.Ein Ziel des Multi-Host-Supports ist es, Containern auf verschiedenen Hosts zu ermöglichen, miteinander zu kommunizieren. Weiterhin wird eine Isolierung der Netzwerke von Containergruppen realisiert. Jeder Container kann nun gleichzeitig an verschiedene Netzwerke angebunden werden. Die Technologie zur Realisierung der Netzwerkkommunikation kann ausgetauscht und erweitert werden. Das Konzept der Docker-Links wird durch ein neues Servicekonzept ergänzt. Ein Service wird zur Laufzeit an einen Container und ein Netzwerk gebunden. Der Service wird durch einen Namen und die Bereitstellung verschiedener Ports definiert. Um die Informationen von Netzwerken und Services zwischen den Docker-Hosts zu koordinieren, werden diese in einem Key Value Store, bzw. Service Discovery wie Consul, Etcd oder ZooKeeper bereitgestellt (Abb. 1). Abb. 1: Docker-Multi-Host-Network-Architekturboot2docker-Network-ExperimentListing 1: Erzeugen eines eigenen boot2docker-Docker-Experimental-Images$ cat >Dockerfile $ROOTFS/usr/local/bin/docker \ && chmod +x $ROOTFS/usr/local/bin/dockerRUN /make_iso.shCMD ["cat", "boot2docker.iso"]EOF$ docker build -t infrabricks/boot2docker:1.9-dev .$ docker run --rm infrabricks/boot2docker:1.9-dev > boot2docker-1.9.iso$ cat >Dockerfile $ROOTFS/usr/local/bin/docker \ && chmod +x $ROOTFS/usr/local/bin/dockerRUN /make_iso.shCMD ["cat", "boot2docker.iso"]EOF$ docker build -t infrabricks/boot2docker:1.9-dev .$ docker run --rm infrabricks/boot2docker:1.9-dev > boot2docker-1.9.isoListing 2: Erzeugen eines Docker-Service-Discovery-Hosts$ docker-machine create -d virtualbox \ —virtualbox-boot2docker-url=file://$(pwd)/boot2docker-1.9.iso consul$ docker $(docker-machine config consul) run \ -d -p 8500:8500 progrium/consul \ -server -advertise $(docker-machine ip consul) \ -ui-dir=/ui \ -data-dir=/data \ -boo...

Java Magazin
Kolumne: Docker rockt Java

Docker Multi-Host Networking

Ein fehlender Baustein im Docker-Ökosystem ist der einheitliche Multi-Host-Network-Support. Dafür gibt es bisher mehrere Lösungen, die sich mit sehr speziellen Werkzeugen und Erweiterungen in einem Host integrieren lassen. Die Integration des Projekts libnetwork in die Docker Engine soll nun eine einheitliche und transparente Netzwerknutzung für Container realisieren.

Peter Roßbach


Auf der DockerCon 2015 in San Francisco wurde der Docker-Network-Multi-Host-Support erstmalig vorgestellt. Die Docker-Version 1.7 basiert nun komplett auf dem Projekt libnetwork [1]. In der Docker Engine ist der gewohnte Linux-Bridge-Support [2], [3], [4] verfügbar. Mit dem Release 1.9 ist der Multi-Host-Support nun offiziell verfügbar. Diese Kolumne beruht auf dem Experimental-1.9-Release, das nun täglich aktuell verfügbar ist.Ein Ziel des Multi-Host-Supports ist es, Containern auf verschiedenen Hosts zu ermöglichen, miteinander zu kommunizieren. Weiterhin wird eine Isolierung der Netzwerke von Containergruppen realisiert. Jeder Container kann nun gleichzeitig an verschiedene Netzwerke angebunden werden. Die Technologie zur Realisierung der Netzwerkkommunikation kann ausgetauscht und erweitert werden. Das Konzept der Docker-Links wird durch ein neues Servicekonzept ergänzt. Ein Service wird zur Laufzeit an einen Container und ein Netzwerk gebunden. Der Service wird durch einen Namen und die Bereitstellung verschiedener Ports definiert. Um die Informationen von Netzwerken und Services zwischen den Docker-Hosts zu koordinieren, werden diese in einem Key Value Store, bzw. Service Discovery wie Consul, Etcd oder ZooKeeper bereitgestellt (Abb. 1). Abb. 1: Docker-Multi-Host-Network-Architekturboot2docker-Network-ExperimentListing 1: Erzeugen eines eigenen boot2docker-Docker-Experimental-Images$ cat >Dockerfile $ROOTFS/usr/local/bin/docker \ && chmod +x $ROOTFS/usr/local/bin/dockerRUN /make_iso.shCMD ["cat", "boot2docker.iso"]EOF$ docker build -t infrabricks/boot2docker:1.9-dev .$ docker run --rm infrabricks/boot2docker:1.9-dev > boot2docker-1.9.iso$ cat >Dockerfile $ROOTFS/usr/local/bin/docker \ && chmod +x $ROOTFS/usr/local/bin/dockerRUN /make_iso.shCMD ["cat", "boot2docker.iso"]EOF$ docker build -t infrabricks/boot2docker:1.9-dev .$ docker run --rm infrabricks/boot2docker:1.9-dev > boot2docker-1.9.isoListing 2: Erzeugen eines Docker-Service-Discovery-Hosts$ docker-machine create -d virtualbox \ —virtualbox-boot2docker-url=file://$(pwd)/boot2docker-1.9.iso consul$ docker $(docker-machine config consul) run \ -d -p 8500:8500 progrium/consul \ -server -advertise $(docker-machine ip consul) \ -ui-dir=/ui \ -data-dir=/data \ -boo...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang