Créer un réseau pont de base
Dans cette étape, nous apprendrons à créer un réseau pont de base dans Docker. Un réseau pont (bridge network) est le type de réseau par défaut pour les conteneurs. Les conteneurs connectés au même réseau pont peuvent communiquer entre eux, tout en étant isolés des conteneurs sur d'autres réseaux ponts et du réseau de la machine hôte.
Tout d'abord, listons les réseaux Docker existants pour voir ceux par défaut.
docker network ls
Vous devriez voir certains réseaux par défaut tels que bridge
, host
et none
. Le réseau bridge
est celui avec lequel nous allons travailler.
Maintenant, créons un nouveau réseau pont. Nous l'appellerons my-bridge-network
.
docker network create my-bridge-network
Cette commande crée un nouveau réseau pont avec les paramètres par défaut. Docker attribue automatiquement un sous-réseau et une passerelle à ce réseau.
Pour vérifier que le réseau a été créé avec succès, listez à nouveau les réseaux Docker.
docker network ls
Vous devriez maintenant voir my-bridge-network
dans la liste.
Ensuite, examinons le réseau nouvellement créé pour voir ses détails, y compris le sous-réseau et la passerelle attribués par Docker.
docker network inspect my-bridge-network
La sortie de cette commande fournira des informations détaillées sur le réseau, comme son identifiant, le pilote (qui devrait être bridge
), et le sous-réseau et la passerelle dans la section IPAM
.
Maintenant, exécutons un conteneur et connectons-le à notre nouveau réseau. Nous utiliserons l'image alpine
pour cet exemple. Si vous n'avez pas l'image alpine
localement, Docker la téléchargera automatiquement.
docker run -d --name container1 --network my-bridge-network alpine sleep infinity
Cette commande exécute un conteneur nommé container1
en mode détaché (-d
), le connecte à my-bridge-network
(--network my-bridge-network
), et le maintient en cours d'exécution en exécutant la commande sleep infinity
.
Pour vérifier que le conteneur est en cours d'exécution et connecté au bon réseau, vous pouvez examiner le conteneur.
docker inspect container1
Dans la sortie, recherchez la section Networks
. Vous devriez voir my-bridge-network
répertorié, ainsi que l'adresse IP attribuée au conteneur au sein de ce réseau.
Enfin, exécutons un autre conteneur et connectons-le au même réseau pour démontrer la communication entre eux.
docker run -d --name container2 --network my-bridge-network alpine sleep infinity
Maintenant, container1
et container2
sont tous deux connectés à my-bridge-network
. Ils devraient être en mesure de communiquer entre eux en utilisant leurs noms de conteneur ou leurs adresses IP au sein du réseau.
Pour tester la communication, nous pouvons exécuter une commande à l'intérieur de container1
pour ping container2
. Tout d'abord, nous devons installer le paquet iputils
dans les conteneurs alpine pour utiliser la commande ping
.
docker exec container1 apk add --no-cache iputils
docker exec container2 apk add --no-cache iputils
Maintenant, ping container2
depuis container1
.
docker exec container1 ping -c 3 container2
Vous devriez voir des réponses de ping réussies, indiquant que les deux conteneurs sur le même réseau pont peuvent communiquer.