Einführung in Docker Networking: Arbeitsablauf, Netzwerkgrundlagen, Netzwerkbefehle

Veröffentlicht: 2020-04-30

Inhaltsverzeichnis

Einführung

Im Zeitalter der Virtualisierung arbeiten Netzwerkadministratoren nicht mehr nur an traditionellen Netzwerkkomponenten wie Routern, LAN/WAN-Komponenten und Switches. Sie müssen an Netzwerkkomponenten auf Virtualisierungsplattformen arbeiten. Die gesamte IT-Branche interessiert sich für das Konzept der Containerisierung, bei der starke Netzwerkfähigkeiten unerlässlich sind.

Da Docker eine der am häufigsten verwendeten Containerisierungssoftware ist, sind Docker-Netzwerkkenntnisse für die Konfiguration eines Containers wichtig. Derzeit nutzen mehr als 12.000 Unternehmen Docker-Container für den Versand ihrer Anwendungen . Zu diesen Unternehmen gehören JPMorgan Chase, ThoughtWorks und Neudesic.

In diesem Artikel lernen wir die Einführung in Docker, die Grundlagen des Docker-Netzwerks , kennen .

Lassen Sie uns zunächst die Grundlagen von Docker verstehen.

Was ist Docker?

Docker ist eine Softwarepaketierungsplattform, die das Konzept der Containerisierung eingeführt hat. Containerisierung ist der Prozess, bei dem eine Softwareanwendung mit allen erforderlichen Abhängigkeiten wie Bibliotheken, Modulen und Betriebssystem gepackt wird. Dadurch ist die Software in jeder Umgebung problemlos lauffähig.

Diese Softwarepakete werden Docker-Container genannt . Diese Container werden zum Bereitstellen der Anwendung für eine bestimmte Umgebung verwendet. Es kann ein Ubuntu-Container, CentOS-Container, Tomcat-Ubuntu- oder CakePHP-Container sein.

Angenommen, eine Java-Anwendung wird erstellt, um in einer Umgebung ausgeführt zu werden, in der ein Tomcat-Server installiert ist. Nach der Entwicklung wird die Anwendung zum Testen gesendet. Zum Ausführen der Anwendung müssen die Tester den Tomcat-Server neu einrichten. Anschließend wird es an die Produktionsumgebung gesendet, für die erneut dieselbe Umgebung eingerichtet werden muss.

Aber ein Docker-Container, der die Umgebung bereits enthält, wird das Problem lösen, bei Null anzufangen. Somit können die Entwickler, Tester und Mitglieder der Produktionseinheit die Anwendung ausführen, ohne den Tomcat-Server immer wieder neu einzurichten.

Lesen Sie: Docker-Projektideen und -themen

Docker-Workflow

Die Anwendung bzw. der Projektcode wird in eine Docker-Datei geschrieben . Diese Datei enthält die Anwendungsanforderungen und Abhängigkeiten. Diese Datei erzeugt ein Docker-Image , das später verwendet wird, um den Code in der Datei auszuführen.

Ein Image enthält den Code, Umgebungsvariablen, Konfigurationsdateien, Laufzeit und Bibliotheken, die zum Ausführen der Anwendung erforderlich sind. Die Bilder werden dann in den Docker Hub hochgeladen, der ein GIT-Repository ist, das aus Docker-Bildern besteht. Aus diesen Repositorys können Sie Ihre eigenen Docker-Images abrufen und hochladen.

Mitglieder des Qualitätssicherungsteams oder des Produktionsteams eines Unternehmens holen die Bilder für die Entwicklung ihrer Behälter ab. Da alle diese Container voneinander isoliert sein können, ist das Docker-Netzwerk das Regelwerk, nach dem sie miteinander interagieren.

Nachdem Sie nun ein grundlegendes Verständnis von Docker haben, lassen Sie uns einen genaueren Blick auf Docker-Netzwerke werfen .

Lesen Sie auch: Docker-Gehalt in Indien

Grundlagen des Docker- Netzwerks

Bei der Erstinstallation von Docker werden drei verschiedene Docker-Netzwerke konfiguriert – None, Host und Bridge. None und Host sind wichtige Komponenten des Docker-Stacks und können nicht entfernt werden. Das Bridge-Netzwerk kann konfiguriert werden, bekannt als Docker0-Netzwerk.

Docker kann zum Erstellen vieler Netzwerke verwendet werden. Sie können Container zu mehr als einem Netzwerk hinzufügen. Ein Container, der mit mehreren Netzwerken verbunden ist, kann sich mit den Containern dieser Netzwerke verbinden.

Die wichtigsten Netzwerktreiber, die in Docker verwendet werden, sind wie folgt:

Brücke

Dies ist das private Standardnetzwerk, das von Docker auf dem Host erstellt wird. Von diesem Netzwerk werden automatisch ein IP-Subnetz und ein Gateway erstellt. Container, die zu diesem Netzwerk gehören, sind Teil desselben Subnetzes. Container in diesem Netzwerk kommunizieren also über IP-Adressierung.

Bridge-Netzwerktreiber sind sehr nützlich, wenn die Anwendung in einem eigenständigen Container ausgeführt wird. Docker-Installationen stellen standardmäßig docker0 dar. Docker gibt das JSON-Objekt zurück, das das Bridge-Netzwerk beschreibt, wenn Sie den folgenden Befehl in die Konsole eingeben:

Docker-Netzwerkinspektionsbrücke

Gastgeber

Der Host - Treiber wird für eigenständige Container verwendet . Wenn der Host-Netzwerkmodus für einen Container verwendet wird, wird die Isolierung zwischen dem Docker-Host und dem Netzwerkstapel aufgehoben. Der Container bekommt keine zugewiesene IP-Adresse.

Beispielsweise wird ein Container ausgeführt, der an Port 80 bindet, und es wird ein Hostnetzwerk verwendet. In diesem Fall ist die Anwendung des Containers auf Port 80 der IP-Adresse des Hosts verfügbar. Dieser Netzwerkmodus ist nützlich, wenn ein Container eine große Anzahl von Ports verwaltet.

Darüber hinaus ermöglicht Ihnen der Host-Treiber, mehrere Web-Container auf demselben einzelnen Host auszuführen.

Keiner

Bei dieser Art von Netzwerk haben die Container keinen Zugriff auf externe Netzwerke und sind nicht mit anderen Containern oder Netzwerken verbunden. None wird verwendet, wenn Sie den Netzwerkstapel auf einem bestimmten Container deaktivieren möchten.

None hat nur eine Loopback-Schnittstelle, was bedeutet, dass es keine externen Netzwerkschnittstellen gibt.

Überlagerung

Dies wird zum Erstellen eines internen privaten Netzwerks verwendet, das sich über alle Knoten im Schwarmcluster erstreckt. Ein Docker-Schwarmnetzwerk ist eine Gruppe virtueller oder physischer Maschinen, die die Docker-Anwendung ausführen. Dieser Netzwerktreiber ist im Docker-Netzwerk wichtig, da er die Kommunikation zwischen dem Standalone-Container und dem Schwarmdienst ermöglicht.

Standalone-Container auf verschiedenen Docker-Daemons können ebenfalls mit diesem Treiber interagieren. Sie müssen also kein Routing auf Betriebssystemebene für die Container durchführen.

Macvlan

In diesem Netzwerk können Sie einem Container eine MAC-Adresse zuweisen. Dadurch erscheint es als physisches Gerät. Unter Verwendung dieser Adresse leitet der Docker-Daemon den Datenverkehr an einen bestimmten Router weiter. Ein Docker-Daemon ist ein Server, der auf dem Host-Betriebssystem läuft und mit diesem interagiert, um verschiedene Aktivitäten auszuführen. Ein Macvlan-Netzwerk vereinfacht die Kommunikation zwischen Containern.

Macvlan ist eine gute Option für den Umgang mit Legacy-Anwendungen, von denen erwartet wird, dass sie mit dem physischen Netzwerk verbunden sind. Wenn Sie ein Macvlan-Netzwerk einrichten, kann es sich in zwei Modi befinden – Bridge-Modus oder 802.1q-Trunk-Bridge-Modus.

Netzwerk-Plugins

Sie können mit Docker ein Netzwerk-Plug-in eines Drittanbieters verwenden. Diese Plug-Ins sind im Docker Hub verfügbar und können über Drittanbieter bezogen werden.

Docker- Netzwerkbefehle

Die gängigsten Docker-Netzwerkbefehle lauten wie folgt:

Docker-Netzwerke auflisten

Dieser Code listet alle Docker-Netzwerke auf dem Host auf –

Docker-Netzwerk ls

Erstellen eines Docker-Netzwerks

Der folgende Befehl hilft Ihnen beim Erstellen eines Netzwerks, bevor Sie einen Container starten:

docker network create –-driver Treibername Name

Dabei ist drivername der Name des Netzwerktreibers und Netzwerkbefehle auflisten

Dieser Befehl dient zum Auflisten der verfügbaren Netzwerkbefehle:

Docker-Netzwerkhilfe

Entfernen eines Netzwerks

Der Befehl rm kann zum Entfernen eines Netzwerks verwendet werden.

Docker-Netzwerk rm mynetwork

Verbinden mit einem Docker-Netzwerk

Wenn Sie ein Docker-Netzwerk erstellen, wird es standardmäßig mit dem Bridge-Netzwerk verbunden. Der folgende Befehl kann verwendet werden, um eine Verbindung zu einem anderen Netzwerk herzustellen, wenn Sie den Container ausführen:

Docker-Container ausführen -it –net=mynetwork nginx

Erhalt von Containerhäfen

Sie können den Port des Containers mit dem Port-Befehl abrufen:

Docker-Port Cotainer_Name/ID

Fazit

Docker ist heutzutage ein entscheidender Aspekt der Softwareentwicklung. Da sich immer mehr Unternehmen in Richtung Containerisierung bewegen, ist die Vernetzung für die Isolierung von Containern wichtig. Dies ermöglicht die Entwicklung von Webanwendungen, die sicher zusammenarbeiten. Diese Netzwerke helfen bei einer besseren Kommunikation zwischen den Containern.

Docker hat vielen Unternehmen geholfen, ihre Bereitstellungszeit zu verbessern und die damit verbundenen Kosten zu senken. Wenn Sie also Anfänger sind, ist dieser Artikel hilfreich, um sich mit den Grundlagen des Docker-Netzwerks vertraut zu machen .

Wenn Sie mehr über Full-Stack-Entwicklung erfahren möchten, sehen Sie sich das PG-Diplom in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenges Training, mehr als 9 Projekte und Aufgaben, IIIT, bietet -B Alumni-Status, praktische praktische Abschlussprojekte und Jobunterstützung bei Top-Unternehmen.

Bereiten Sie sich auf eine Karriere der Zukunft vor

BRANCHENVERTRAUENSWÜRDIGES LERNEN – BRANCHENANERKANNTE ZERTIFIZIERUNG.
Jetzt bewerben