Zum Fußzeileninhalt springen
VERWENDUNG VON IRONSECUREDOC

Docker Compose Netzwerk (Wie es für Entwickler funktioniert)

Was ist Docker?

Docker ist eine Open-Source-Plattform, die containerbasierte Konzepte verwendet, um die Bereitstellung und Skalierung von Anwendungen in leichten, tragbaren Containern zu automatisieren. In einfachen Worten fasst ein Docker-Container den gesamten Anwendungscode und seine Abhängigkeiten in einer Einheit zusammen, die in verschiedenen Umgebungen konsistent ist – vom Laptop eines Entwicklers bis hin zum Testserver oder Produktions-Cloud-Server.

Docker Compose Network (Wie es für Entwickler funktioniert): Abbildung 1

Container verhalten sich nicht wie traditionelle virtuelle Maschinen (VMs), da sie sich den Betriebssystem-Kernel des Wirtssystems teilen. Daher sind Container viel effizienter und schneller zu starten. Tatsächlich garantieren Docker-Container ein konsistentes Verhalten über alle Phasen des Entwicklungszyklus hinweg.

Docker-Images sind tatsächlich Vorlagen für Beschreibungen von Containern, die die Anwendungsumgebung halten. Dieses Set enthält auch Werkzeugsätze zur Verwaltung des Container-Lebenszyklus. Ein Beispiel ist Docker Compose, das Sie zur Orchestrierung von Anwendungen verwenden können, die aus mehreren Containern bestehen. Dann gibt es Docker Hub, ein Register zum Teilen von Images.

Was sind Docker Compose Netzwerke?

Docker Compose Netzwerke ermöglichen es Diensten, die in einer Docker Compose Anwendung laufen, miteinander innerhalb derselben gekapselten Umgebungen zu kommunizieren. Wenn Sie mehr als einen Dienst in einer docker-compose.yml Datei definieren, erstellt Docker Compose automatisch ein Standardnetzwerk, sodass diese Dienste mit den Servicenamen als Hostnamen miteinander kommunizieren können. Im Wesentlichen ermöglicht es dem Benutzer, ihr eigenes Netzwerk und mehrere Dienste mit dem erstellten Netzwerk zu definieren.

Default Bridge Network: If you define no network for your containers when you run docker-compose up, Docker automatically creates a bridge network. Alle Container können mit ihrem Servicenamen als Hostname über dieses Standard-Treibernetzwerk miteinander kommunizieren.

Benutzerdefinierte Netzwerke: Mit diesen Optionen können Benutzer ein oder zwei benutzerdefinierte Netzwerke und sogar mehr als benutzerdefinierte Netzwerke definieren. Sie können benutzerdefinierte Netzwerke innerhalb Ihres Container-Ports und der docker-compose.yml Datei definieren. Durch die Zuweisung von Diensten zu diesen Netzwerken steuern Sie, wie Container kommunizieren können:

  • Interne Netzwerke isolieren Dienste voneinander.
  • Mehrere Netzwerke ermöglichen es einigen Diensten, miteinander zu kommunizieren, während anderen ein solcher Zugang verwehrt wird.

Dienstentdeckung: Jeder Dienst erhält einen Hostnamen, der seinem Namen in der Konfiguration entspricht. Das heißt, Sie können in einem Container auf einen anderen Dienst verweisen, indem Sie den Namen des anderen Dienstes verwenden. Zum Beispiel würden Sie im Webdienst db verwenden, um auf die IP des Datenbankcontainers zu verweisen.

Netzwerkmodi: Sie können auch Netzwerkmodi festlegen, um Host, Bridge oder None für Dienste zu verwenden. Am häufigsten verwendet wird eine Bridge, die den Containerverkehr isoliert.

Was sind Docker Netzwerktreiber?

Docker-Netzwerktreiber beschreiben die Verbindungen und die Kommunikation der Container untereinander und mit anderen Containern und Systemen. Es gibt verschiedene Anwendungsfälle, und Netzwerktreiber können auf diese Fälle angewendet werden, wobei jeder ein anderes Niveau an Isolierung, Konnektivität und Leistung bietet. Wir werden jeden Netzwerktreiber durchgehen und ihre Verwendung erklären.

Arten von Docker Netzwerktreibern

Bridge (Standard)

Interne Docker-Netzwerke ermöglichen einem Container die Kommunikation mit anderen auf Basis eines einzelnen Hosts. Wenn Sie Container ohne Angabe eines Netzwerks starten, verwendet Docker das Standard-Bridgenetzwerk.

# Create a custom bridge network
docker network create --driver bridge my_bridge_network

# Run containers and connect to the custom network
docker run -d --name container1 --network my_bridge_network busybox sleep 3600
docker run -d --name container2 --network my_bridge_network busybox sleep 3600
# Create a custom bridge network
docker network create --driver bridge my_bridge_network

# Run containers and connect to the custom network
docker run -d --name container1 --network my_bridge_network busybox sleep 3600
docker run -d --name container2 --network my_bridge_network busybox sleep 3600
SHELL

Hier können die Servicenamen zur Kommunikation verwendet werden, wie ping container1 und container2.

Host

Mit dem Hosttreiber teilt der Container direkt den Netzwerkkern des Hosts, sodass ein Container keine eigene, benutzerdefinierte Netzwerkisolierung erhält.

# Run a container using the host network
docker run -d --network host nginx
# Run a container using the host network
docker run -d --network host nginx
SHELL

Der NGINX-Container teilt jetzt die IP des Hosts und die Netzwerkschnittstellen, wodurch die Netzwerkisolierung umgangen wird.

Overlay

Es verbindet Container über mehrere Hosts hinweg und wird hauptsächlich in Docker Swarm- oder Kubernetes-Umgebungen verwendet, um physische oder virtuelle Maschinen über Container miteinander zu verbinden, sodass sie sicher über ein virtuelles Netzwerk kommunizieren können.

# Create an overlay network for use in a Docker Swarm cluster
docker network create -d overlay my_overlay_network

# Deploy a service in the Swarm cluster
docker service create --name web --network my_overlay_network nginx
# Create an overlay network for use in a Docker Swarm cluster
docker network create -d overlay my_overlay_network

# Deploy a service in the Swarm cluster
docker service create --name web --network my_overlay_network nginx
SHELL

Dies erstellt einen Dienst in einem Swarm-Cluster, der sich über mehrere Docker-Hosts erstrecken kann.

None

Dieser None-Treiber deaktiviert die Netzwerkfunktionalität für den Container. Dieser Container ist von jeglicher Art externer Netzwerkkommunikation isoliert.

# Run a container with no network
docker run -d --network none busybox sleep 3600
# Run a container with no network
docker run -d --network none busybox sleep 3600
SHELL

Der Busybox-Container hat keinen Internetzugang und kann keine Aufrufe an die Netzwerke anderer Container oder die Außenwelt senden.

Macvlan

Der Macvlan-Treiber ermöglicht es Containern, in den Netzwerken als physische Geräte mit eigenen MAC-Adressen zu erscheinen, sodass sie direkten Zugang zum physischen Netzwerk haben.

# Create a Macvlan network
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 macvlan_network

# Run a container on the Macvlan network
docker run -d --network macvlan_network busybox sleep 3600
# Create a Macvlan network
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 macvlan_network

# Run a container on the Macvlan network
docker run -d --network macvlan_network busybox sleep 3600
SHELL

IPvlan

Der IPvlan-Treiber ähnelt Macvlan, legt jedoch den Fokus darauf, IP-Adressen zuzuweisen, anstatt auf Layer 2 (MAC-Adressen) zu vertrauen. Es erlaubt mehreren Containern, dieselbe Netzwerkschnittstelle zu teilen.

# Create an IPvlan network
docker network create -d ipvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 ipvlan_network

# Run a container on the IPvlan network
docker run -d --network ipvlan_network busybox sleep 3600
# Create an IPvlan network
docker network create -d ipvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 ipvlan_network

# Run a container on the IPvlan network
docker run -d --network ipvlan_network busybox sleep 3600
SHELL

Es wird die Layer-2-Ethernet-Schnittstelle des Hosts mit dem Netzwerk teilen, jedoch eine andere IP-Adresse haben.

Benutzerdefinierte Plugins

Die benutzerdefinierten Plugins von Docker sind von Drittanbietern oder Benutzer entwickelte Netzwerktreiber, die umfangreiche Funktionen zu Netzwerkfähigkeiten bieten, die über das hinausgehen, was Docker standardmäßig bieten kann. Docker-Plugins von Drittanbietern können sich in externe Netzwerklösungsrahmen wie Software-Defined Networking integrieren, wodurch Fähigkeiten wie Sicherheit, Skalierbarkeit sowie Multi-Host-Netzwerke verbessert werden. Docker bietet Entwicklern und Anbietern eine vielseitige Architektur für Netzwerk-Plugins, die deren Installation und Verwendung auf die gleiche Weise wie der native Treiber ermöglicht.

IronSecureDoc

IronSecureDoc für Docker erleichtert es Entwicklern, sichere Dokumentenverarbeitungsfunktionen zu ihren containerisierten Anwendungen hinzuzufügen. Mit Docker können Sie Ihre ASP.NET Core-Anwendung mit IronSecureDoc in einer einheitlichen Umgebung kapseln, die die Bereitstellung und Skalierung erleichtert. Um es zum Laufen zu bringen, erstellen Sie eine Docker-Datei, die Ihre ASP.NET Core-Anwendung unter Verwendung der IronSecureDoc-Bibliothek und möglicherweise anderer Installationsskripte oder Konfigurationen, die erforderlich sind, um alles zum Laufen zu bringen, zusammenstellt.

Docker Compose Network (Wie es für Entwickler funktioniert): Abbildung 2 - IronSecureDoc

Es umfasst auch eine docker-compose.yml-Datei, die Abhängigkeiten von Diensten, Umgebungsvariablen und zugeordnete Ports umfasst und somit Zugriff darauf bietet. Daher machen die mit der Sicherheit von Dokumenten verbundenen Aufgaben die Verwaltung einfacher, sodass Ihre Webanwendung effizient und effektiv außerhalb der in der Entwicklung oder Produktion genutzten Anwendung läuft. Die Installation und Konfiguration von IronSecureDoc, wie es bei Docker der Fall ist, ist notwendig, um alle Möglichkeiten zu nutzen, die durch das Verschlüsseln von Dokumenten, Schwärzung usw. geboten werden.

Installation und Ausführung von IronSecureDoc

Führen Sie den folgenden Befehl in der Eingabeaufforderung oder in einem geöffneten Terminalfenster aus, damit das IronSecureDoc Docker-Image aus dem Repository geholt wird.

# Pull IronSecureDoc Docker image
docker pull ironsoftwareofficial/ironsecuredoc
# Pull IronSecureDoc Docker image
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker Compose Network (Wie es für Entwickler funktioniert): Abbildung 3

Nachdem Sie das Image aus dem Docker-Repository gezogen haben, können Sie einen weiteren Befehl verwenden, um IronSecureDoc als laufenden Container zu starten.

# Run a container with network isolation and environment variables
docker container run --rm -p 8080:8080 \
  -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> \
  -e ENVIRONMENT=Development \
  -e HTTP_PORTS=8080 \
  ironsoftwareofficial/ironsecuredoc:latest
# Run a container with network isolation and environment variables
docker container run --rm -p 8080:8080 \
  -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> \
  -e ENVIRONMENT=Development \
  -e HTTP_PORTS=8080 \
  ironsoftwareofficial/ironsecuredoc:latest
SHELL

Der oben verwendete Docker-Ausführbefehl bringt eine Containerinstanz von IronSecureDoc hoch. Das Bridgenetzwerk wird für die Netzwerkisolierung angenommen. Dies ermöglicht auch externen Zugriff auf die innerhalb des Containers exponierten Dienste über http://localhost:8080 durch Verwendung des Flags -p 8080:8080; dies gibt den internen Dienst, der auf Port 8080 des Container-Netzwerks läuft, auf Port 8080 des Host-Netzwerks frei.

Container laufen standardmäßig im Bridge-Netzwerk von Docker, sodass sie sich von anderen Containern und der Außenwelt isolieren, es sei denn, Sie setzen sie per Port-Zuordnung frei, was Sie hier tun. Die übergebenen Umgebungsvariablen (IronSecureDoc_LicenseKey, ENVIRONMENT, HTTP_PORTS) konfigurieren das Verhalten der Anwendung im Container. Das Flag --rm sorgt dafür, dass der Container entfernt wird, wenn er stoppt.

Dieses Setup hat den Vorteil, dass das Bridgenetzwerk den Container isoliert und Dienste intern verbindet, während die Port-Zuordnung den externen Verkehr vom Host-System in den Dienst des Containers leitet, wodurch der Zugang erleichtert wird.

Docker Compose Network (Wie es für Entwickler funktioniert): Abbildung 4

Verwendung von IronSecureDoc mit Docker-Netzwerk-Port

Die REST-API von IronSecureDoc ermöglicht es Benutzern, Dokumente nach der Installation und dem Start in Docker zu schwärzen, zu zertifizieren und zu verschlüsseln. Für detailliertere Schritte konsultieren Sie die Dokumentation hier.

Um beispielsweise ein Dokument zur Verschlüsselung einzureichen, können Sie eine POST-Anfrage an die IronSecureDoc-API ausführen:

# POST a document for encryption using cURL
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
# POST a document for encryption using cURL
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

Dieser Befehl sendet das Dokument automatisch an IronSecureDoc, wo es ordnungsgemäß verschlüsselt wird.

Abschluss

Das Docker-Netzwerk ist entscheidend für die Steuerung der Anwendungsinteraktionen und ihrer Kommunikation mit anderen Anwendungen und der restlichen Welt durch verschiedene Treiber und Konfigurationen für unterschiedliche Anwendungsbedürfnisse. Die Standard-Bridgenetzwerk-Konfiguration bietet eine grundlegende Isolation, da Dienste über Port-Zuordnung an Host-Systeme exponiert werden können, wie am Beispiel der IronSecureDoc-Anwendung. Es erleichtert die einfachere Verwaltung und Konfiguration containerisierter Anwendungen und erhöht die betriebliche Flexibilität und Skalierbarkeit der Anwendung.

IronSecureDoc, ein fortschrittliches Dokumentenverarbeitungstool, nutzt die Möglichkeiten von Docker im Hinblick auf die Containerisierung, was eine schnelle und zuverlässige Bereitstellung der Anwendung ermöglicht. Dies unterstützt mehrere Umgebungen und integriert nahtlos die Docker-Netzwerke mit IronSecureDoc, wodurch die Integration von Anwendungen einfach, zugänglich und verwaltbar wird.

Folglich rationalisiert es Workflows, verbessert die Effizienz und optimiert den Betrieb, insbesondere beim Verarbeiten von Dokumenten. Dies bereichert letztendlich sowohl die Entwicklungs- als auch die Bereitstellungserfahrungen und macht es zu einer wertvollen Lösung für moderne Softwareanwendungen. Für weitere Informationen zur Lizenzierung von IronSecureDoc folgen Sie bitte dieser Seite. Um mehr über viele der Produktangebote von Iron Software zu erfahren, folgen Sie diesem Link.

Häufig gestellte Fragen

Wie erleichtern Docker Compose-Netzwerke die Kommunikation zwischen Diensten?

Docker Compose-Netzwerke ermöglichen es Diensten innerhalb einer Docker Compose-Anwendung, mithilfe von Dienstnamen als Hostnamen zu kommunizieren, wodurch Interaktionen innerhalb derselben gekapselten Umgebung ermöglicht werden.

Welche Rolle spielt das Standard-Bridge-Netzwerk in Docker Compose?

Das von Docker automatisch erstellte Standard-Bridge-Netzwerk ermöglicht es Containern, unter Verwendung ihrer Dienstnamen als Hostnamen miteinander zu kommunizieren, wenn kein spezifisches Netzwerk definiert ist.

Wie können benutzerdefinierte Netzwerke Docker Compose-Anwendungen verbessern?

Benutzerdefinierte Netzwerke in Docker Compose verbessern Anwendungen, indem sie Isolation und selektive Kommunikation zwischen Diensten ermöglichen, die innerhalb der Datei docker-compose.yml definiert sind.

Welche Arten von Docker-Netzwerktreibern existieren und welche sind ihre Anwendungen?

Docker-Netzwerktreiber wie Bridge, Host, Overlay, None, Macvlan und Ipvlan bieten unterschiedliche Grade von Isolation, Konnektivität und Leistung, die für verschiedene Anwendungsbedürfnisse geeignet sind.

Wie unterstützt der Overlay-Netzwerktreiber die mehrhostige Kommunikation?

Der Overlay-Netzwerktreiber verbindet Container über mehrere Hosts und bietet sichere Kommunikation über ein virtuelles Netzwerk, das häufig in Docker Swarm- oder Kubernetes-Umgebungen verwendet wird.

Warum ist die sichere Dokumentenverarbeitung in Containerumgebungen wichtig?

Sichere Dokumentenverarbeitung, wie die Verwendung von IronSecureDoc, ist in Containerumgebungen wichtig, da sie die effiziente Verkapselung, Bereitstellung und Skalierung von Anwendungen mit den Netzwerkkapazitäten von Docker ermöglicht.

Wie kann ich eine sichere Dokumentenverarbeitung mit Docker einrichten?

Sie können eine sichere Dokumentenverarbeitung in Docker einrichten, indem Sie Tools wie IronSecureDoc innerhalb von Containern bereitstellen und Umgebungen durch Dockerfile und docker-compose.yml für Netzwerkkapselung konfigurieren.

Welche Schritte sind erforderlich, um Dokumente über eine REST-API innerhalb von Docker zu verschlüsseln?

Um Dokumente über eine REST-API innerhalb von Docker zu verschlüsseln, senden Sie mit Tools wie cURL in einem containerisierten Setup eine POST-Anfrage mit dem Dokument und den Parametern an die sichere Dokumentenverarbeitungs-API.

Wie können die Netzwerkkapazitäten von Docker die Skalierbarkeit von Anwendungen verbessern?

Die Netzwerkkapazitäten von Docker verbessern die Skalierbarkeit von Anwendungen, indem sie eine effiziente Verwaltung von Interaktionen und Kommunikation zwischen Diensten ermöglichen und Workflows und Bereitstellungserfahrungen straffen.

Wie lautet der Prozess zur Integration von IronSecureDoc in bestehende Docker-Systeme?

Integrieren Sie IronSecureDoc in bestehende Docker-Systeme, indem Sie Docker-Befehle für die Einrichtung verwenden und Portzuordnung sowie Umgebungsvariablen nutzen, um eine konsistente Bereitstellung und Skalierung sicherzustellen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen