Exemple de réseautage de base sur la façon de connecter les conteneurs Docker
- 872
- 135
- Maëlle Perez
L'une des nombreuses fonctionnalités souhaitables intégrées directement à Docker est le réseautage. La fonction de réseautage de Docker est accessible en utilisant un --lien
Indicateur qui permet de connecter un nombre de conteneurs Docker sans avoir besoin d'exposer les ports internes d'un conteneur vers le monde extérieur.
Dans ce guide, vous apprendrez à réseauter deux ou plusieurs conteneurs Docker sur un système Linux via des instructions de ligne de commande. Cela fonctionnera sur n'importe quelle distribution Linux. Consultez les instructions étape par étape ci-dessous pour savoir comment.
Dans ce tutoriel, vous apprendrez:
- Comment réseauter les conteneurs docker ensemble
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Toute distribution Linux |
Logiciel | Docker |
Autre | Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande. |
Conventions | # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier |
Connecter des conteneurs Docker via le réseautage
- Dans cette configuration, vous apprendrez à relier deux ou plusieurs conteneurs Docker en utilisant une technique de réseautage Docker simple. Nous pouvons commencer par le déploiement de notre premier conteneur Docker, nommé
sanbox1
, à quoi nous créerons plus tard un lien réseau:# docker run -it --name sandbox1 -h sanbox1 Linuxconfig / sandbox / bin / bash
Il n'y a rien de nouveau dans la commande ci-dessus, sauf pour noter que nous n'exposons aucun port réseau même si notre intention est d'accéder aux services (SSH, connexion de la base de données, etc.) via leurs numéros de port pertinents.
- La commande Linux suivante déploiera une seconde et cette fois un conteneur de docker parent nommé nommé
bac à sable2
. Nous utiliserons également un--lien
Indicateur qui créera une relation soi-disant parent-enfant avec un conteneur précédemment déployébac à sable1
. De plus, le--lien
Flag permettra au conteneur parent d'accéder à tous les services exécutésbac à sable1
conteneur via ses numéros de ports correspondants sans la nécessité du conteneur enfant d'exposer des ports vers le monde extérieur.# docker run -it --name sandbox2 -h sandbox2 - link sandbox1: sandbox1 linuxconfig / sandbox / bin / bash
La commande docker ci-dessus a utilisé le
--lien
drapeau qui attend deux arguments séparés par un côlon. Le premier argument devrait être un identifiant de conteneur ou comme dans notre cas un fournibac à sable1
nom de conteneur que nous aimerions lier à. Le deuxième argument, aussibac à sable1
, est un alias interne utilisé parbac à sable2
résoudrebac à sable1
Configuration réseau en utilisant le/ etc / hôtes
fichier de configuration:
# grep sandbox1 / etc / hôte 172.17.0.41 Sandbox1
- Selon la configuration des ports de votre conteneur enfant utilisé, vous pouvez également extraire
bac à sable1
Configuration des variables d'environnement du système. Par exemple:# env hostname = sandbox2 term = xterm sandbox1_port = tcp: // 172.17.0.37: 7555 sandbox1_port_7555_tcp = tcp: // 172.17.0.37: 7555 path = / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin pwd = / sandbox1_port_755_tcp_addr = 172.17.0.37 sandbox1_port_7555_tcp_proto = tcp shlvl = 1 home = / root sandbox1_name = / sandbox2 / sandbox1 sandbox1_port_7555_tcp_port = 7555 _ = / usr / bin / env / env
- De cette façon, nous pouvons simplement utiliser l'alias de notre conteneur pour enfants pour nous y connecter à partir d'un conteneur parent
bac à sable2
Sans avoir besoin de cocoter son adresse IP:# ping -c 1 sandbox1 ping sandbox1 (172.17.0.41): 56 octets de données 64 octets de 172.17.0.41: icmp_seq = 0 ttl = 64 Time = 0.071 MS --- Sandbox1 Ping Statistics --- 1 paquets transmis, 1 paquets reçus, 0% Pled de paquet aller-retour min / avg / max / stddev = 0.071/0.071/0.071/0.000 ms
et également accéder à tous les ports et services:
# nmap -p 22 sandbox1 Démarrage Nmap 6.47 (http: // nmap.org) au 2015-05-18 08:58 UTC NMAP Scan Rapport pour sandbox1 (172.17.0.41) L'hôte est en place (0.000090S latence). Port State Service 22 / TCP Open SSH MAC Adresse: 02: 42: AC: 11: 00: 29 (inconnu) NMAP FAIT: 1 Adresse IP (1 hôte) scanné en 0.50 secondes
C'est tout ce qu'on peut en dire. Nos deux conteneurs peuvent désormais communiquer entre eux et des services comme SSH travaillent entre eux. Vous pouvez appliquer cette même configuration à deux ou plusieurs conteneurs Docker que vous devez réseauter ensemble.
Réflexions de clôture
Dans ce guide, nous avons vu comment relier les conteneurs Docker sur un système Linux. Il s'agit d'une tâche relativement basique qui est facilitée par Docker --lien
option. Avoir la capacité de réseauter deux ou plusieurs conteneurs Docker augmente considérablement la puissance et l'utilité de Docker.
Tutoriels Linux connexes:
- Choses à installer sur Ubuntu 20.04
- Comment créer, gérer et exposer un service à Kubernetes
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Comment se connecter à Docker Container via SSH
- Comment créer une pile de lampe basée sur Docker à l'aide de Docker sur…
- Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
- Comment définir ou modifier l'indicateur de partition de démarrage sur Linux
- Comment afficher / vérifier les ports ouverts sur Ubuntu Linux
- Comment utiliser un fichier comme clé de périphérique LUKS
- Installez Arch Linux dans VMware Workstation
- « Comment supprimer tous les conteneurs Docker à l'aide d'une seule commande
- Suppression des lignes en double d'un fichier texte à l'aide de la ligne de commande Linux »