VERWENDUNG VON IRONSECUREDOC

Docker Compose-Netzwerk (So funktioniert es für Entwickler)

Veröffentlicht 16. Dezember 2024
Teilen Sie:

Was ist Docker?

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

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

Container verhalten sich nicht wie traditionellevirtuelle Maschinen (VMs)weil sie denselben Betriebssystemkern wie das Hostsystem nutzen. Deshalb sind Container viel effizienter und schneller zu starten. Tatsächlich gewährleisten Docker-Container konsistentes Verhalten in allen Phasen des Entwicklungszyklus.

Tatsächlich sind Docker-Images Vorlagen für Beschreibungen von Containern, die die Anwendungsumgebung enthalten. Dieses Set enthält auch Toolkits zur Verwaltung von Container-Lebenszyklen. Ein Beispiel ist Docker Compose, das Sie verwenden können, um Anwendungen zu orchestrieren, 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 in einer docker-compose.yml-Datei mehr als einen Dienst definieren, erstellt Docker Compose automatisch ein Standardnetzwerk, damit diese Dienste untereinander kommunizieren können, indem sie Servicenamen als Hostnamen verwenden. Ermöglicht dem Benutzer im Wesentlichen, ein eigenes Netzwerk zu definieren und mehrere Dienste mit dem erstellten Netzwerk zu verbinden.

Default Bridge Network: Wenn Sie kein Netzwerk für Ihre Container definieren, wenn Sie docker-compose up ausführen, erstellt Docker automatisch ein Bridge-Netzwerk. Alle Container können über ihren Dienstnamen als Hostname auf diesem Standardtreibernetzwerk 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 in Ihrer container port- und docker-compose.yml-Datei definieren. Indem Sie Dienste diesen Netzwerken zuweisen, steuern Sie, wie Container kommunizieren können:

  • Interne Netzwerke isolieren Dienste von anderen.
  • Mehrere Netzwerke ermöglichen es einigen Diensten, miteinander zu kommunizieren, während anderen ein solcher Zugriff 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, z. B. würden Sie im Webdienst db verwenden, um auf die IP des Datenbank-Containers zu verweisen.

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

Was sind Docker-Netzwerktreiber?

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

Arten von Docker-Netzwerktreibern

Bridge(Standard)

Interne Docker-Netzwerke ermöglichen es einem Container, mit anderen auf der Grundlage eines einzelnen Hosts zu kommunizieren. Wenn Sie Container starten, ohne ein Netzwerk anzugeben, verwendet Docker das Standard-Bridge-Netzwerk.

docker network create --driver bridge my_bridge_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
docker network create --driver bridge my_bridge_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
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker network create --driver bridge my_bridge_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
VB   C#

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

Host

Mit dem Host-Treiber teilt der Container direkt den Netzwerk-Stack des Hosts, sodass ein Container keine eigene, benutzerdefinierte Netzwerktrennung erhält.

docker run -d --network host nginx
docker run -d --network host nginx
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker run -d --network host nginx
VB   C#

Der NGINX-Container teilt nun die IP-Adresse und die Netzwerkschnittstellen des Hosts, wodurch die Netwerkisolierung umgangen wird.

Überlagerung

Es verbindet Container über mehrere Hosts hinweg und wird hauptsächlich in Docker Swarm- oder Kubernetes-Umgebungen eingesetzt. Dabei verbindet es physische oder virtuelle Maschinen durch Container, um sicher über ein virtuelles Netzwerk zu kommunizieren.

docker network create -d overlay my_overlay_network
docker service create --name web --network my_overlay_network nginx
docker network create -d overlay my_overlay_network
docker service create --name web --network my_overlay_network nginx
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker network create -d overlay my_overlay_network docker service create --name web --network my_overlay_network nginx
VB   C#

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

Keine:

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

docker run -d --network none busybox sleep 3600
docker run -d --network none busybox sleep 3600
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker run -d --network none busybox sleep 3600
VB   C#

Der BusyBox-Container wird keinen Zugang zum Internet haben und keine Anrufe an andere Container in eigenen Netzwerken oder die Außenwelt senden können.

Macvlan

Der Macvlan-Treiber ermöglicht es Containern, im Netzwerk als physische Geräte mit ihren eigenen MAC-Adressen zu erscheinen, sodass sie direkt auf das physische Netzwerk zugreifen können.

docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 macvlan_network
docker run -d --network macvlan_network busybox sleep 3600
docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 macvlan_network
docker run -d --network macvlan_network busybox sleep 3600
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker network create -d macvlan \ --subnet=192.168.1.0/24 \ --gateway=192.168.1.1 \ -o parent=eth0 macvlan_network docker run -d --network macvlan_network busybox sleep 3600
VB   C#

IPvlan

Der IPvlan-Treiber ist ähnlich wie Macvlan, konzentriert sich jedoch auf die Zuweisung von IP-Adressen, anstatt auf Layer 2 zu basieren.(MAC-Adressen). Es ermöglicht mehreren Containern, dieselbe Netzwerkschnittstelle zu teilen.

docker network create -d ipvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 ipvlan_network
docker run -d --network ipvlan_network busybox sleep 3600
docker network create -d ipvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 ipvlan_network
docker run -d --network ipvlan_network busybox sleep 3600
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker network create -d ipvlan \ --subnet=192.168.1.0/24 \ --gateway=192.168.1.1 ipvlan_network docker run -d --network ipvlan_network busybox sleep 3600
VB   C#

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

Benutzerdefinierte Plugins

Docker's benutzerdefinierte Plugins sind von Drittanbietern oder Benutzern entwickelte Netzwerktreiber, die erweiterte Funktionen für Netzwerkkapazitäten bieten, die über das hinausgehen, was Docker standardmäßig anbieten kann. Drittanbieter-Docker-Plugins für externe Netzwerk-Solutions-Frameworks ermöglichen es Docker-Containern, auf bekannte Frameworks wie Software-Defined Networking zuzugreifen und sich darin zu integrieren, wodurch die Fähigkeiten der Entwickler in Bezug auf Sicherheit, Skalierbarkeit und Multi-Host-Networking verbessert werden. Docker bietet Entwicklern und Anbietern eine vielseitige Architektur für Netzwerk-Plugins, die es ihnen ermöglicht, Docker auf die gleiche Weise wie den nativen Treiber zu installieren und zu verwenden.

IronSecureDoc

IronSecureDoc für Docker ermöglicht es Entwicklern, ihren containerisierten Anwendungen sichere Dokumentenverarbeitungsfunktionen hinzuzufügen. Mit Docker können Sie Ihre ASP.NET Core-Anwendung mit IronSecureDoc in einer einheitlichen Umgebung kapseln, die das Deployment und die Skalierung erleichtert. Um es zum Laufen zu bringen, erstellen Sie eine Dockerfile, die Ihre ASP.NET Core-Anwendung mit der IronSecureDoc-Bibliothek und möglicherweise anderen Installationsskripten oder Konfigurationen zusammenstellt, die erforderlich sind, damit alles funktioniert.

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

Es enthält außerdem eine docker-compose.yml-Datei, die Dienstabhängigkeiten, Umgebungsvariablen und zugeordnete Ports umfasst und damit Zugriff darauf bietet. Daher erleichtern die Aufgaben im Zusammenhang mit der Sicherheit von Dokumenten das Management, sodass Ihre Webanwendung effizient und effektiv läuft, unabhängig davon, ob sie in der Entwicklung oder Produktion verwendet wird. Die Installation und Konfiguration von IronSecureDoc, wie es bei Docker der Fall ist, wird erforderlich sein, um alle Funktionen, die durch die Verschlüsselung von Dokumenten, Schwärzung usw. angeboten werden, nutzen zu können.

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 abgerufen wird.

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker pull ironsoftwareofficial/ironsecuredoc
VB   C#

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

Nach dem Herunterladen eines Images aus einem Docker-Container können wir einen weiteren Befehl verwenden, um IronSecureDoc, einen weiteren laufenden Container, zu starten.

docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
VB   C#

Der obige Docker-Run-Befehl wird eine Containerinstanz des IronSecureDoc starten. Das Brückennetzwerk wird für die Netzwerktrennung angenommen. Dies ermöglicht auch den externen Zugriff auf Dienste, die innerhalb des Containers über http://localhost:8080 unter Verwendung des Flags -p 8080:8080 bereitgestellt werden. Dies legt den internen Dienst offen, der im Container-Netzwerk auf Port 8080 läuft, im eigenen Netzwerk auf Port 8080 des bestehenden Netzwerks des Hosts.

Container laufen standardmäßig im Netzwerk der Docker-Bridge, wodurch sie sich von anderen Containern und der Außenwelt isolieren, es sei denn, Sie setzen Port-Mapping ein, um sie freizugeben, was Sie hier tun. Die Umgebungsvariablen, die übergeben werden, IronSecureDoc_LicenseKey, ENVIRONMENT, HTTP_PORTS - konfigurieren das Verhalten der Anwendung im Container. Diese Flagge bewirkt, dass der Container entfernt wird, wenn er stoppt.

Dieses Setup hat den Vorteil, dass das Bridge-Netzwerk die Container-Verbindungsdienste intern isoliert, während die Port-Mapping die externe Kommunikation vom Host-Rechner in den Dienst des Containers überbrückt und somit den Zugriff erleichtert.

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

Verwendung von IronSecuredoc mit Docker-Netzwerkport

Die REST-API von IronSecureDoc ermöglicht Benutzern, Dokumente nach der Installation und dem Start in Docker zu schwärzen, zu zertifizieren und zu verschlüsseln. es wurde auch anderswo erwähnt. Hier ist dielinkzur Dokumentation.

Docker Compose-Netzwerk (Wie es für Entwickler funktioniert): Abbildung 5

Zum Beispiel können Sie zum Verschlüsseln eines Dokuments einen POST an die IronSecureDoc-API senden:

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'
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'
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'curl -X 'POST' \ 'http: -H 'accept: */ *' \ -H 'Content-Type: multipart/form-data' \ -F 'pdf_file=@test.pdf;type=application/pdf'
VB   C#

Dies wird das Dokument automatisch an IronSecureDoc senden, wo es ordnungsgemäß verschlüsselt wird.

Schlussfolgerung

Im Allgemeinen ist Docker-Networking wichtig zur Steuerung von Anwendungsanwendungen und deren Interaktion mit anderen Anwendungen sowie dem Rest der Welt durch unterschiedliche Treiber und Konfigurationen je nach den vielfältigen Anwendungsbedürfnissen. Die standardmäßige Bridge-Netzwerkkonfiguration ermöglicht eine sehr grundlegende Isolierung, da der Dienst durch Port-Mapping für Hostsysteme zugänglich gemacht werden kann, wie im Fall der IronSecureDoc-Anwendung. Es erleichtert die Verwaltung und Konfiguration von containerisierten Anwendungen, da dies die betriebliche Flexibilität und Skalierbarkeit der Anwendung erhöht.

IronSecureDoc, ein fortschrittliches Dokumentverarbeitungstool, ist stets bereit, die Fähigkeiten von Docker im Hinblick auf Containerisierung zu nutzen. Das bedeutet, Anwendungen schnell und zuverlässig bereitzustellen und Unterstützung für mehrere Umgebungen zu gewährleisten, während der Support für Umgebungsanwendungen sogar von Natur aus vorhanden ist. Es integriert Docker-Netzwerke mit IronSecureDoc, wobei die Integration von Anwendungen einfach, zugänglich und verwaltet ist.

Daher rationalisiert es Arbeitsabläufe viel besser, um die Effizienz zu verbessern und führt zu besseren Ergebnissen bei der Dokumentenverarbeitung. Dies wird letztendlich die Erfahrung sowohl bei der Entwicklung als auch beim Einsatz verbessern und somit zu einer wertvollen Lösung für moderne Softwareanwendungen machen. Für weitere Informationen zur IronSecureDoc-Lizenzierung folgen Sie bitte diesem seite. Um mehr über die vielen Produktangebote von Iron Software zu erfahren, folgen Sie diesem link.

< PREVIOUS
Nextcloud Docker Compose (Wie es für Entwickler funktioniert)
NÄCHSTES >
Docker-Container aus Image starten (Entwickler-Tutorial)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Kostenloser DownloadLizenzen anzeigen >