Le réseau de Docker peut être divisé en Bridge, Host, Overlay, None et Macvlan. Parmi eux, le type par défaut est le type de pont. Jetons un coup d'œil à quelques commandes et configurations courantes.
Semblable à la machine virtuelle et à la relation réseau de l'hôte, l'hôte du conteneur peut également avoir différents réseaux. Les conteneurs sur le même réseau peuvent communiquer entre eux.
Exemple 1
Créez un réseau Bridge, spécifiez le sous-réseau et la passerelle
docker network create --subnet 10.1.0.0/24 --gateway 10.1.0.1 br02
Vérifiez-le après la création et découvrez qu'il existe une interface réseau supplémentaire sur notre hôte, qui se trouve être notre adresse de passerelle
Découvrez le contenu spécifique de ce réseau
Exemple 2
Supprimez d'abord le réseau précédent, puis créez-en un nouveau. Cette fois, la plage d'adresses IP et l'étiquette sont également spécifiées sur la base de l'exemple 1.
docker network prune
docker network create --subnet 10.1.0.0/16 --gateway 10.1.0.1 \
--ip-range=10.1.4.0/24 --driver=bridge --label=host4network br04
Créer un nouveau conteneur sur notre réseau
docker container run --name network-test01 -it --network br04 centos /bin/bash
Ensuite, installez les outils réseau
yum update -y
yum install -y net-tools
Vérifiez ensuite l'adresse
Découvrez la passerelle
netstat -rn
Jetez un œil au DNS
cat /etc/resolv.conf
Exemple 3
Attribuer une adresse IP spécifiée au conteneur
docker container run -d --name network-test02 --ip 10.1.4.102 --network br04 nginx
Exemple 4
Connectez 2 conteneurs dans un réseau
Créez d'abord un réseau localhost
docker network create -d bridge --internal localhost
Ensuite, créez un nouveau conteneur Mysql sur ce réseau
<br/>docker container run -d --name test_mysql \<br/>-e MYSQL_ROOT_PASSWORD=P4sSw0rd0 \<br/>--network localhost mysql:5.7<br/>
Créer un nouveau conteneur sur le réseau Bridge
<br/>docker container run -it --name ping-mysql \<br/>--network bridge \<br/>centos<br/>
Il ne peut pas envoyer de ping pour le moment, car il appartient à un autre réseau
Mais si vous l'ajoutez à notre réseau localhost, vous pouvez communiquer les uns avec les autres
docker network connect localhost ping-mysql
Si vous cochez, vous pouvez voir qu'il appartient à deux réseauxdocker container inspect ping-mysql
Exemple 5
Nous créons un conteneur nginx dans notre réseau localhost
docker container run -d --name private-nginx -p 8081:80 --network localhost nginx
Trouvé qu'il est inaccessible de l'extérieur
Mais il est accessible de l'intérieur