Docker-Netzwerke

Docker für Fortgeschrittene

Mike Metzger

Data Engineering Consultant

Docker Networking

  • Docker hat umfangreiche Netzwerkoptionen
  • Du kannst Netzwerke für Kommunikation zwischen Containern, Host und externen Systemen erstellen
  • Wir sehen uns verschiedene Befehle zur Arbeit mit Netzwerken an.
Docker für Fortgeschrittene

Docker-Netzwerktypen

  • Docker unterstützt verschiedene Netzwerktypen über Treiber
    • bridge: Standardtreiber, Verbindungen nach außen, eingehend wenn exponiert
    • host: Volle Kommunikation zwischen Host und Containern
    • none: Isoliert den Container vom Netzwerk
    • Viele weitere, inkl. benutzerdefinierte Treiber
  • Wir nutzen meist den Bridge-Treiber, um eigene Netzwerke zu erstellen
Docker für Fortgeschrittene

Mit Docker-Netzwerken arbeiten

Mehrere Befehle:

  • docker network
    • docker network <command>
    • docker network <command> --help
    • docker network ls listet alle Docker-Netzwerke auf dem Host auf
    • docker network create erstellt ein Netzwerk
    • docker network rm entfernt ein Netzwerk
Docker für Fortgeschrittene

Beispiel: Docker-Netzwerk

  • Erstelle ein Docker-Netzwerk namens mynetwork
    repl@host:~$ docker network create mynetwork
    
5ff0febab98f73b74dd753eb44a30f7d7291052b3b1d58b0134589221cb8e33d
repl@host:~$ docker network ls

NETWORK ID NAME DRIVER SCOPE 2edc5ae4838c bridge bridge local a92988382711 host host local 5ff0febab98f mynetwork bridge local 5464ed866dad none null local
Docker für Fortgeschrittene

Container mit Netzwerken verbinden

  • Wie verbindest du einen Container mit einem Netzwerk?
  • docker run --network <networkname> ...
  • docker run --network mynetwork ubuntu bash
  • Du kannst Container auch später verbinden
    • docker network connect <networkname> <container>
    • docker network connect mynetwork ubuntu-B
Docker für Fortgeschrittene

docker network inspect

  • Wie prüfst du Details eines Netzwerks?
  • docker network inspect <networkname>
  • Liefert Konfiguration und IPs der zugewiesenen Container
    repl@host:~$ docker network inspect mynetwork
    
Docker für Fortgeschrittene

Beispiel: docker network inspect

        "Name": "mynetwork",
        ...
        "Driver": "bridge",
        ...
        Containers": {    "2be08aa942029191350d4bceb8816254af8713dd6f7dcbadcab8f068f7dbfdfa": {
                "Name": "unruffled_kare",
                "EndpointID": "29739356ae200e1e901d2eabef05efaca0fb37e1a4e1a4c3bf369f2892ca6c4b",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
Docker für Fortgeschrittene

Lass uns üben!

Docker für Fortgeschrittene

Preparing Video For Download...