Passer au contenu du pied de page
UTILISATION DE IRONSECUREDOC

Réseau Docker Compose (Comment cela fonctionne pour les développeurs)

Qu'est-ce que Docker ?

Docker est une plateforme open-source qui utilise des concepts basés sur des conteneurs pour automatiser le déploiement et la mise à l'échelle des applications à l'intérieur de conteneurs légers et portables. En termes simples, un conteneur Docker regroupe tout le code de l'application et ses dépendances dans une seule unité, cohérente à travers les environnements, du portable d'un développeur au serveur de test ou aux serveurs cloud de production.

Réseau Docker Compose (Comment cela fonctionne pour les développeurs) : Figure 1

Les conteneurs ne se comportent pas comme des machines virtuelles traditionnelles (VM) car ils partagent le noyau du système d'exploitation de l'hôte. Par conséquent, les conteneurs sont beaucoup plus efficaces et plus rapides à démarrer. En effet, les conteneurs Docker garantissent un comportement cohérent à toutes les étapes du cycle de développement.

En fait, les images Docker sont des modèles pour les descriptions de conteneurs qui contiennent l'environnement de l'application. Cet ensemble comprend également des kits d'outils pour la gestion des cycles de vie des conteneurs. Un exemple est Docker Compose, que vous pouvez utiliser pour orchestrer des applications composées de plusieurs conteneurs. Il y a ensuite Docker Hub, un registre pour partager des images.

Qu'est-ce que les réseaux Docker Compose ?

Les réseaux Docker Compose permettent aux services fonctionnant dans une application Docker Compose de communiquer entre eux dans les mêmes environnements encapsulés. Si vous définissez plus d'un service dans un fichier docker-compose.yml, Docker Compose crée automatiquement un réseau par défaut afin que ces services puissent communiquer entre eux en utilisant les noms de service en tant que noms d'hôte. Essentiellement, cela permet à l'utilisateur de définir son propre réseau et plusieurs services avec le réseau créé.

Réseau par défaut de pont : Si vous ne définissez aucun réseau pour vos conteneurs lorsque vous exécutez docker-compose up, Docker crée automatiquement un réseau de pont. Tous les conteneurs peuvent communiquer entre eux avec leur nom de service comme nom d'hôte sur ce réseau de pilote par défaut.

Réseaux personnalisés : Avec ces options, les utilisateurs peuvent définir un ou deux réseaux personnalisés, voire plus en tant que réseaux définis par l'utilisateur. Vous pouvez définir des réseaux personnalisés dans votre port de conteneur et le fichier docker-compose.yml. En assignant des services à ces réseaux, vous contrôlez comment les conteneurs peuvent communiquer :

  • Les réseaux internes isolent les services des autres.
  • Les réseaux multiples permettent à certains services de communiquer entre eux tout en empêchant d'autres d'y accéder.

Découverte des services : Chaque service reçoit un nom d'hôte égal à son nom dans la configuration. C'est-à-dire que vous pouvez référer à un autre service dans un conteneur en utilisant le nom de l'autre service. Par exemple, dans le service web, vous utiliseriez db pour référer à l'IP du conteneur de la base de données.

Modes de réseau : Vous pouvez également définir des modes de réseau pour utiliser host, bridge ou none pour les services. Le plus couramment utilisé est un bridge, qui isole le trafic des conteneurs.

Quels sont les pilotes réseau Docker ?

Les pilotes réseau Docker décrivent les connexions et la communication des conteneurs entre eux, ainsi qu'avec d'autres conteneurs et systèmes. Il existe divers cas d'utilisation, et les pilotes de réseau peuvent être appliqués à ces cas, chacun offrant un niveau différent d'isolation, de connectivité et de performance. Nous passerons en revue chaque pilote de réseau et expliquerons leur utilisation.

Types de pilotes réseau Docker

Pont (par défaut)

Les réseaux internes docker permettent à un conteneur de communiquer avec d'autres sur la base d'un seul hôte. Si vous lancez des conteneurs sans spécifier de réseau, Docker utilise le réseau de pont par défaut.

# 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

Ici, les noms de service peuvent être utilisés pour communiquer, comme ping container1 et container2.

Host

Avec le pilote hôte, le conteneur partage directement la pile réseau de l'hôte, de sorte qu'un conteneur ne bénéficie pas de son propre isolement réseau personnalisé.

# 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

Le conteneur NGINX partage maintenant l'IP et les interfaces réseau de l'hôte, contournant ainsi l'isolement du réseau.

Overlay

Il interconnecte les conteneurs à travers plusieurs hôtes et est principalement utilisé dans les environnements Docker Swarm ou Kubernetes, connectant des machines physiques ou virtuelles à travers des conteneurs pour communiquer en toute sécurité en utilisant un réseau virtuel.

# 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

Cela crée un service dans un cluster Swarm qui peut être étendu sur plusieurs hôtes Docker.

None

Ce pilote none désactive la mise en réseau pour le conteneur. Ce conteneur est isolé de toute communication réseau externe.

# 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

Le conteneur busybox n'aura pas accès à Internet et ne pourra pas envoyer d'appels vers les réseaux propres d'autres conteneurs ou vers l'extérieur.

Macvlan

Le pilote Macvlan permet aux conteneurs de se présenter comme des dispositifs physiques dans le réseau avec leurs propres adresses MAC, de sorte qu'ils peuvent accéder directement au réseau physique.

# 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

Le pilote IPvlan est similaire à Macvlan mais se concentre sur l'attribution d'adresses IP au lieu de se fier à la couche 2 (adresses MAC). Il permet à plusieurs conteneurs de partager la même interface réseau.

# 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

Il partagera l'interface Ethernet de la couche 2 de l'hôte avec le réseau mais aura une adresse IP différente.

Plugins Personnalisés

Les plugins personnalisés de Docker sont des pilotes de réseau développés par des tiers ou des utilisateurs offrant des fonctionnalités élaborées sur les capacités réseau qui sont plus que ce que Docker peut offrir par défaut. Les plugins Docker de tiers peuvent s'intégrer à des frameworks de solution de mise en réseau externes tels que le réseau défini par logiciel, améliorant ainsi les capacités telles que la sécurité, la scalabilité, ainsi que la mise en réseau multi-hôte. Docker offre aux développeurs et aux fournisseurs une architecture polyvalente pour les plugins réseau, permettant leur installation et leur utilisation de la même manière que le pilote natif.

IronSecureDoc

IronSecureDoc pour Docker facilite l'ajout par les développeurs de capacités de traitement sécurisé de documents à leurs applications conteneurisées. Avec Docker, vous pouvez encapsuler votre application ASP.NET Core avec IronSecureDoc dans un environnement uniforme qui facilite le déploiement et la mise à l'échelle. Pour le faire fonctionner, vous construisez un fichier Dockerfile qui compose votre application ASP.NET Core en utilisant la bibliothèque IronSecureDoc et peut-être d'autres scripts d'installation ou configurations nécessaires pour que les choses fonctionnent.

Réseau Docker Compose (Comment cela fonctionne pour les développeurs) : Figure 2 - IronSecureDoc

Il comprend également un fichier docker-compose.yml comprenant les dépendances de service, les variables d'environnement et les ports mappés, fournissant ainsi un accès à cela. Par conséquent, les tâches impliquant la sécurité des documents sont plus faciles à gérer afin que votre application web fonctionne efficacement et efficacement en dehors de celle utilisée en développement ou en production. Installer et configurer IronSecureDoc comme c'est le cas de Docker sera nécessaire pour saisir toutes les capacités offertes par le cryptage des documents, la rédaction, etc.

Installation et Exécution d'IronSecureDoc

Exécutez la commande suivante dans l'invite de commandes ou dans une fenêtre de terminal ouverte pour que l'image Docker IronSecureDoc soit récupérée du référentiel.

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

Réseau Docker Compose (Comment cela fonctionne pour les développeurs) : Figure 3

Après avoir extrait l'image du référentiel Docker, vous pouvez utiliser une autre commande pour démarrer IronSecureDoc en tant que conteneur en cours d'exécution.

# 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

La commande Docker run ci-dessus fera apparaître une instance de conteneur d'IronSecureDoc. Le réseau de pont est supposé pour l'isolation réseau. Cela permet également un accès externe aux services exposés à l'intérieur du conteneur via http://localhost:8080 en utilisant le drapeau -p 8080:8080 ; cela expose le service interne, en cours d'exécution sur le port 8080 du réseau du conteneur, au port 8080 du réseau de l'hôte.

Les conteneurs, par défaut, fonctionnent sur le réseau de pont de Docker, ils s'isolent donc des autres conteneurs et du monde extérieur, sauf si vous les exposez via le mappage de port, ce que vous faites ici. Les variables d'environnement transmises (IronSecureDoc_LicenseKey, ENVIRONMENT, HTTP_PORTS) configurent le comportement de l'application dans le conteneur. Le drapeau --rm fait que le conteneur est supprimé lorsqu'il s'arrête.

Cette configuration présente l'avantage que le réseau de pont isole le conteneur et connecte les services en interne, tandis que le mappage de port relie le trafic externe de la machine hôte au service du conteneur, ce qui rend l'accès facile.

Réseau Docker Compose (Comment cela fonctionne pour les développeurs) : Figure 4

Utiliser IronSecureDoc avec le port réseau Docker

L'API REST d'IronSecureDoc permet aux utilisateurs de rédiger, certifier et chiffrer des documents après l'installation et le lancement dans Docker. Pour des étapes plus détaillées, consultez la documentation ici.

Par exemple, pour soumettre un document pour chiffrement, vous pouvez effectuer une requête POST sur l'API IronSecureDoc :

# 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

Cette commande enverra automatiquement le document à IronSecureDoc, où il sera chiffré de manière appropriée.

Conclusion

La mise en réseau Docker est cruciale pour contrôler les interactions des applications et leur communication avec d'autres applications et le reste du monde grâce à différents pilotes et configurations pour divers besoins applicatifs. La configuration par défaut du réseau de pont permet une isolation de base car les services peuvent être exposés aux systèmes hôtes grâce au mappage de port, comme l'illustre l'application IronSecureDoc. Cela facilite la gestion et la configuration des applications conteneurisées, améliorant la flexibilité opérationnelle et la scalabilité de l'application.

IronSecureDoc, un outil avancé de traitement de documents, tire parti des capacités de Docker en termes de conteneurisation, permettant un déploiement rapide et fiable des applications. Cela garantit un support pour de multiples environnements tout en intégrant sans problème la mise en réseau Docker avec IronSecureDoc, rendant l'intégration des applications facile, accessible et gérable.

Par conséquent, cela simplifie les flux de travail, améliore l'efficacité et améliore les opérations, en particulier lors du traitement des documents. Cela enrichit en fin de compte à la fois les expériences de développement et de déploiement, en faisant une solution précieuse pour les applications logicielles modernes. Pour plus d'informations sur la licence IronSecureDoc, veuillez suivre cette page. Pour en savoir plus sur bon nombre des offres de produits d'Iron Software, suivez ce lien.

Questions Fréquemment Posées

Comment les réseaux Docker Compose facilitent-ils la communication des services ?

Les réseaux Docker Compose permettent aux services au sein d'une application Docker Compose de communiquer en utilisant les noms de service comme noms d'hôtes, ce qui permet des interactions dans le même environnement encapsulé.

Quel est le rôle du réseau de pont par défaut dans Docker Compose ?

Le réseau de pont par défaut créé automatiquement par Docker permet aux conteneurs de communiquer entre eux à l'aide de leurs noms de service comme noms d'hôtes si aucun réseau spécifique n'est défini.

Comment les réseaux personnalisés peuvent-ils améliorer les applications Docker Compose ?

Les réseaux personnalisés dans Docker Compose améliorent les applications en permettant l'isolation et la communication sélective entre les services, définies dans le fichier docker-compose.yml.

Quels types de pilotes de réseau Docker existent et quels sont leurs usages ?

Les pilotes de réseau Docker tels que bridge, host, overlay, none, Macvlan, et IPvlan offrent divers niveaux d'isolation, de connectivité et de performance, adaptés à différents besoins d'application.

Comment le pilote de réseau overlay prend-il en charge la communication multi-hôtes ?

Le pilote de réseau overlay connecte les conteneurs à travers plusieurs hôtes, fournissant une communication sécurisée via un réseau virtuel, et est couramment utilisé dans des environnements Docker Swarm ou Kubernetes.

Pourquoi le traitement sécurisé des documents est-il important dans les environnements de conteneurs ?

Le traitement sécurisé des documents, comme l'utilisation d'IronSecureDoc, est important dans les environnements de conteneurs car il permet une encapsulation, un déploiement et une mise à l'échelle efficaces des applications avec les capacités de réseau de Docker.

Comment puis-je configurer un traitement sécurisé des documents en utilisant Docker ?

Vous pouvez configurer un traitement sécurisé des documents dans Docker en déployant des outils comme IronSecureDoc au sein de conteneurs, en configurant les environnements via le Dockerfile et docker-compose.yml pour l'isolation du réseau.

Quelles étapes sont nécessaires pour chiffrer des documents via une API REST dans Docker ?

Pour chiffrer des documents via une API REST dans Docker, envoyez une requête POST avec le document et les paramètres à l'API de traitement sécurisé des documents en utilisant des outils comme cURL dans une configuration conteneurisée.

Comment les capacités de réseau de Docker peuvent-elles améliorer la scalabilité des applications ?

Les capacités de réseau de Docker améliorent la scalabilité des applications en permettant une gestion efficace des interactions et communications entre les services, rationalisant les flux de travail et les expériences de déploiement.

Quel est le processus d'intégration d'IronSecureDoc dans les systèmes Docker existants ?

Intégrez IronSecureDoc dans les systèmes Docker existants en utilisant les commandes Docker pour la configuration, en utilisant le mappage de ports et les variables d'environnement pour assurer un déploiement et une mise à l'échelle cohérents.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite