UTILISATION D'IRONSECUREDOC

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

Publié décembre 16, 2024
Partager:

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 rassemble tout le code d'application et ses dépendances au sein d'une seule unité, uniforme à travers les environnements, allant de l'ordinateur portable d'un développeur jusqu'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 systèmes traditionnels.machines virtuelles (VMs)parce qu'ils partagent le noyau du système d'exploitation de l'hôte. Par conséquent, les conteneurs sont beaucoup plus efficaces et démarrent plus rapidement. 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 d'application. Ce lot comprend également des kits d'outils pour gérer les cycles de vie des conteneurs. Un exemple est Docker Compose, que vous pouvez utiliser pour orchestrer des applications constituées de plusieurs conteneurs. Ensuite, il y a Docker Hub, un registre pour le partage d’images.

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

Les réseaux Docker Compose permettent aux services exécutés dans une application Docker Compose de communiquer entre eux au sein des 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 comme noms d'hôtes. Permet essentiellement à l'utilisateur de définir son propre réseau et plusieurs services avec le réseau créé.

Réseau de pont par défaut : 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 en utilisant le nom de leur 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 et même plus en tant que réseaux définis par l'utilisateur. Vous pouvez définir des réseaux personnalisés dans votre fichier de port de conteneur et docker-compose.yml. En assignant des services à ces réseaux, vous contrôlez la manière dont les conteneurs peuvent communiquer :

  • Les réseaux internes isolent les services des autres.
  • Des réseaux multiples permettent à certains services de communiquer entre eux tout en refusant cet accès à d'autres.

    Découverte de service : Chaque service reçoit un nom d'hôte égal à son nom dans la configuration. Autrement dit, vous pouvez faire référence à un autre service dans un conteneur en utilisant le nom de l'autre service, par exemple, dans le service web, vous utiliseriez db pour faire référence à l'IP du conteneur de base de données.

    Modes Réseau : Vous pouvez également définir des modes réseau pour utiliser le mode hôte, pont ou aucun pour les services. Le plus souvent utilisé est un pont, qui isole le trafic des conteneurs.

Quels sont les pilotes de réseau Docker ?

Les pilotes de 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 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 réseau et expliquerons leur utilisation.

Types de pilotes de réseau Docker

Pont(par défaut)

Les réseaux internes de Docker permettent à un conteneur de communiquer avec d'autres sur un hôte unique. Si vous démarrez des conteneurs sans spécifier de réseau, Docker utilise le réseau bridge par défaut.

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#

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

Hôte

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

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#

Le conteneur NGINX partage désormais l'IP et les interfaces réseau de l'hôte, contournant ainsi l'isolation réseau.

Superposition

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 via des conteneurs pour communiquer en toute sécurité en utilisant un réseau virtuel.

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#

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

None:

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

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#

Le conteneur busy box n'aura pas accès à internet et ne pourra pas envoyer d'appels à d'autres conteneurs dans ses réseaux propres 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, leur permettant ainsi d'accéder directement au réseau physique.

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

Le pilote IPvlan est similaire à Macvlan mais se concentre sur l'attribution d'adresses IP plutôt que sur la couche 2.(Adresses MAC). Cela permet à plusieurs conteneurs de partager la même interface réseau.

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#

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

Plugins Personnalisés

Les plugins personnalisés Docker sont des pilotes réseau tiers ou développés par des utilisateurs offrant des fonctionnalités élaborées sur les capacités réseau qui vont au-delà de ce que Docker peut offrir par défaut. Les frameworks de solutions de mise en réseau externe avec des plugins Docker tiers permettent aux conteneurs Docker d'accéder à et de s'intégrer à certains frameworks bien connus comme le Software-Defined Networking, améliorant ainsi les capacités des développeurs, telles que la sécurité, l'évolutivité ainsi que la mise en réseau multi-hôtes. Docker offre aux développeurs et aux fournisseurs une architecture polyvalente pour les plugins réseau, leur permettant d'installer et d'utiliser Docker de la même manière que le pilote natif.

IronSecureDoc

IronSecureDoc for Docker facilite l'ajout de capacités de traitement sécurisé de documents par les développeurs dans 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 Dockerfile qui compose votre application ASP.NET Core en utilisant la bibliothèque IronSecureDoc, et éventuellement d'autres scripts d'installation ou configurations nécessaires pour que tout fonctionne.

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

Il comprend également un fichier docker-compose.yml contenant les dépendances de service, les variables d'environnement et les ports mappés, ce qui permet d'y accéder. Par conséquent, les tâches liées à la sécurité des documents facilitent la gestion, ce qui permet à votre application web de fonctionner de manière efficace et efficiente, en dehors de celle utilisée lors du développement ou en production. Installation et configuration d'IronSecureDoc : comme pour Docker, l'installation et la configuration appropriées d'IronSecureDoc seront nécessaires pour exploiter toutes les capacités offertes par le chiffrement des documents, la rédaction, etc.

Installer et exécuter IronSecureDoc

Exécutez la commande suivante dans l'invite de commande ou dans une fenêtre de terminal ouverte pour récupérer l'image Docker IronSecureDoc depuis le dépôt.

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

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

Après avoir extrait une image d'un conteneur Docker, nous pouvons utiliser une autre commande pour démarrer IronSecureDoc, un autre conteneur opérationnel.

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#

La commande Docker run ci-dessus lancera une instance de conteneur de l'IronSecureDoc. Le réseau bridge est supposé pour l'isolement du réseau. Cela permet également l'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, fonctionnant sur le port 8080 du réseau du conteneur, sur son propre réseau, au port 8080 du réseau existant de l'hôte.

Les conteneurs fonctionnent, par défaut, sur le réseau bridge de Docker, ce qui les isole des autres conteneurs et du monde extérieur sauf si vous les exposez en utilisant le mappage de port, comme vous le faites ici. Les variables d'environnement passant sur IronSecureDoc_LicenseKey, ENVIRONMENT, HTTP_PORTS configurent le comportement de l'application dans le conteneur. Ce drapeau entraîne la suppression du conteneur lorsqu'il s'arrête.

Cette configuration présente l'avantage que le réseau bridge isole les services connectés des conteneurs en interne, tandis que le mappage des ports redirige le trafic externe de la machine hôte vers le service du conteneur, facilitant ainsi l'accès.

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

Utilisation de IronSecuredoc avec le port réseau Docker

L'API REST d'IronSecureDoc permet aux utilisateurs de rédiger, certifier et chiffrer des documents lors de l'installation et du lancement dans Docker. il a également été mentionné ailleurs. Voici lelienà la documentation.

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

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

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#

Cela enverra automatiquement le document à IronSecureDoc, où il sera correctement crypté.

Conclusion

En général, la mise en réseau Docker est importante pour contrôler les applications et leur interaction avec d'autres applications ainsi qu'avec le reste du monde à travers différents pilotes et configurations répondant aux divers besoins des applications. La configuration par défaut du réseau pont permet d'atteindre une isolation très basique puisque le service peut être exposé aux systèmes hôtes par le biais de la mappage de ports, comme dans le cas de l'application IronSecureDoc. Il facilite la gestion et la configuration des applications conteneurisées, car cela améliore la flexibilité opérationnelle et l'évolutivité de l'application.

IronSecureDoc, un outil avancé de traitement de documents, est toujours prêt à utiliser les capacités de Docker en matière de conteneurisation. Cela signifie déployer des applications avec rapidité et fiabilité, garantir le support pour plusieurs environnements tandis que le support d'application environnemental est même de nature. Il intègre le réseau Docker avec IronSecureDoc, où l'intégration des applications est facile, accessible et gérée.

Par conséquent, cela rationalise beaucoup mieux les flux de travail pour améliorer l'efficacité et les résultats des opérations lors du traitement des documents. Cela améliorera finalement l'expérience tant lors du développement que du déploiement, ce qui en fait une solution précieuse pour les applications logicielles modernes. Pour plus d'informations sur les licences IronSecureDoc, veuillez suivre ce lienpage. Pour en savoir plus sur les nombreuses offres de produits d'Iron Software, suivez ce lien.lien.

< PRÉCÉDENT
Nextcloud Docker Compose (Comment ça fonctionne pour les développeurs)
SUIVANT >
Démarrer un conteneur Docker à partir d'une image (Tutoriel pour développeurs)