Docker Netzwerk: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
=Grundlagen=
 
=Grundlagen=
==Bridge==
+
*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.
<pre>
+
*Ein Container sieht lediglich eine Netzwerkschnittstelle mit einer IP-Adresse, einem Gateway, einer Routentabelle, DNS-Diensten und anderen Netzwerkdetails.
Der Standard-Netzwerktreiber. Wenn Sie keinen Treiber angeben, handelt es sich bei dem Netzwerk, das Sie erstellen, um diesen Typ. Brückennetzwerke werden in der Regel verwendet, wenn Ihre Anwendungen in eigenständigen Containern ausgeführt werden und miteinander kommunizieren müssen.
+
*[[Docker Netzwerktreiber]]
</pre>
+
*[[Docker Network]]
==Host==
+
=Published Ports=
<pre>
+
*Standartmäßig werden keine Ports des Docker Containers nach außen Freigegeben.
Bei eigenständigen Containern entfernen Sie die Netzwerkisolation zwischen dem Container und dem Docker-Host und verwenden direkt das Netzwerk des Hosts.
+
*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.
</pre>
+
*Diese Option erstellt eine Firewall-Regel im Container, die einen Container-Port auf einen Port auf dem Docker-Host-System abbildet.
==Overlay==
+
{| class="wikitable"
<pre>
+
|-
Überlagerte Netzwerke verbinden mehrere Docker-Daemons miteinander und ermöglichen es Swarm-Services, miteinander zu kommunizieren. Sie können auch Überlagerte Netzwerke verwenden, um die Kommunikation zwischen einem Swarm-Service und einem eigenständigen Container oder zwischen zwei eigenständigen Containern auf unterschiedlichen Docker-Daemons zu erleichtern. Diese Strategie entfernt die Notwendigkeit, zwischen diesen Containern eine Betriebssystem-Routing-Konfiguration vorzunehmen.
+
! Flag value
</pre>
+
! Beschreibung
==IPvlan==
+
|-
<pre>
+
| -p 8080:80
IPvlan-Netzwerke geben Benutzern die vollständige Kontrolle über IPv4- und IPv6-Adressierung. Der VLAN-Treiber baut darauf auf und gibt Betreibern die vollständige Kontrolle über die Layer-2-VLAN-Tagging und sogar über die IPvlan L3-Routing für Benutzer, die an der Unterlagen-Netzwerkintegration interessiert sind. Siehe IPvlan-Netzwerke.
+
| Abbildung des TCP-Ports 80 im Container auf Port 8080 auf dem Docker-Host-System.
</pre>
+
|-
==Macvlan==
+
| -p 192.168.1.100:8080:80
<pre>
+
| 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.
Macvlan-Netzwerke ermöglichen es Ihnen, einer Container eine MAC-Adresse zuzuweisen, so dass er als physisches Gerät in Ihrem Netzwerk erscheint. Der Docker-Daemon leitet den Traffic an die Container über ihre MAC-Adressen weiter. Die Verwendung des Macvlan-Treibers ist manchmal die beste Wahl, wenn Sie mit Legacy-Anwendungen arbeiten, die direkt an das physische Netzwerk anstatt über den Netzwerkstack des Docker-Hosts angeschlossen sein müssen. Siehe Macvlan-Netzwerke.
+
|-
</pre>
+
| -p 8080:80/udp
==None==
+
| Abbildung des UDP-Ports 80 im Container auf Port 8080 auf dem Docker-Host-System.
<pre>
+
|-
Für diesen Container werden alle Netzwerkeinstellungen deaktiviert. Wird gewöhnlich zusammen mit einem benutzerdefinierten Netzwerktreiber verwendet. None ist für Swarm-Services nicht verfügbar. Siehe Deaktivieren der Container-Netzwerkkommunikation.
+
| -p 8080:80/tcp -p 8080:80/udp
</pre>
+
| 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.

Aktuelle Version vom 14. Februar 2023, 08:47 Uhr

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.