Docker Netzwerk

Aus xinux.net
Zur Navigation springen Zur Suche springen

Grundlagen

  • Ein Container hat keine Informationen darüber, welche Art von Netzwerk er angeschlossen ist, ob es sich um eine Brücke, ein Overlay, ein Macvlan-Netzwerk oder ein benutzerdefiniertes Netzwerk-Plugin handelt.
  • Ein Container sieht lediglich eine Netzwerkschnittstelle mit einer IP-Adresse, einem Gateway, einer Routentabelle, DNS-Diensten und anderen Netzwerkdetails.
  • Docker Netzwerktreiber
  • Docker Network

Published Ports

  • Standartmäßig werden keine Ports des Docker Containers nach außen Freigegeben.
  • Um einen Port für Dienste außerhalb von Docker oder für Docker-Container, die auf einem anderen Netzwerk ausgeführt werden, verfügbar zu machen, verwenden wir die Option --publish oder -p.
  • Diese Option erstellt eine Firewall-Regel im Container, die einen Container-Port auf einen Port auf dem Docker-Host-System abbildet.
Flag value Beschreibung
-p 8080:80 Abbildung des TCP-Ports 80 im Container auf Port 8080 auf dem Docker-Host-System.
-p 192.168.1.100:8080:80 Abbildung des TCP-Ports 80 im Container auf Port 8080 auf dem Docker-Host-System für Verbindungen zur Host-IP 192.168.1.100.
-p 8080:80/udp Abbildung des UDP-Ports 80 im Container auf Port 8080 auf dem Docker-Host-System.
-p 8080:80/tcp -p 8080:80/udp Abbildung des TCP-Ports 80 im Container auf TCP-Port 8080 auf dem Docker-Host-System und Abbildung des UDP-Ports 80 im Container auf UDP-Port 8080 auf dem Docker-Host-System.

IP address and hostname

  • Ein Container erhält standardmäßig eine IP-Adresse für jedes Docker-Netzwerk, dem er angehört.
  • Wenn ein Container gestartet wird, kann er sich nur über das --network Flag an ein einziges Netzwerk anschließen
  • Man kann einen laufenden Container mit mehreren Netzwerken verbinden, indem man den Befehl docker network connect verwendet
  • Beim Starten eines Containers mit dem --network Flag kann die IP-Adresse des Containers in diesem Netzwerk mit den Flags --ip oder --ip6 angegeben werden.

DNS services

  • Standardmäßig erben Container die DNS-Einstellungen des Hosts, die wir in der Konfigurationsdatei /etc/resolv.conf definiert haben.
  • Container, die an ein benutzerdefiniertes Netzwerk angeschlossen sind, verwenden den eingebetteten DNS-Server von Docker.
  • Der eingebettete DNS-Server leitet externe DNS-Abfragen an die auf dem Host konfigurierten DNS-Server weiter.
  • Benutzerdefinierte Hosts, die in der Datei /etc/hosts auf dem Host-Rechner definiert sind, werden von Containern nicht geerbt.