Docker Networking 101

Apprenons Docker Networking….


Il existe principalement cinq réseaux dans Docker – pont, hôte, superposition, aucun et macvlan.

Le réseau de pont est le réseau par défaut dans Docker. Une introduction à ces réseaux a été donnée dans mon précédent article sur l’architecture Docker.

Dans cet article, je vais vous montrer la partie pratique de la mise en réseau des dockers. Vous apprendrez comment vérifier les détails de votre réseau Docker, comment vous connecter à un réseau, comment créer votre réseau, etc. Alors, commençons.

Chaque fois que vous exécutez un conteneur Docker, un appel réseau de pont par défaut docker0 est associé au conteneur sauf si un autre réseau est spécifié. Par exemple, lorsque j’exécute la commande ifconfig, vous obtiendrez les détails du réseau docker0 de type pont avec d’autres détails du réseau.

[protégé par e-mail]: ~ $ ifconfig

docker0: drapeaux = 4099 mtu 1500

inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255

éther 02: 42: f6: 59: 4a: 5f txqueuelen 0 (Ethernet)

Paquets RX 0 octets 0 (0,0 B)

Erreurs RX 0 supprimées 0 dépassements 0 trame 0

Paquets TX 0 octets 0 (0,0 B)

Erreurs TX 0 abandonné 0 dépassements 0 porteuse 0 collisions 0

enp0s3: drapeaux = 4163 mtu 1500

inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255

inet6 fe80 :: 763e: c0b4: 14df: b273 prefixlen 64 scopeid 0x20

éther 08: 00: 27: 68: 64: 9a txqueuelen 1000 (Ethernet)

Paquets RX 2157 octets 2132896 (2,1 Mo)

Erreurs RX 0 supprimées 0 dépassements 0 trame 0

Paquets TX 952 octets 151610 (151,6 Ko)

Erreurs TX 0 abandonné 0 dépassements 0 porteuse 0 collisions 0

enp0s8: drapeaux = 4163 mtu 1500

inet 192.168.56.102 netmask 255.255.255.0 broadcast 192.168.56.255

inet6 fe80 :: 20a: 6c57: 839d: 2652 prefixlen 64 scopeid 0x20

éther 08: 00: 27: 53: 45: 82 txqueuelen 1000 (Ethernet)

Paquets RX 10597 octets 1497146 (1,4 Mo)

Erreurs RX 0 supprimées 0 dépassements 0 trame 0

Paquets TX 12058 octets 1730219 (1,7 Mo)

Erreurs TX 0 abandonné 0 dépassements 0 porteuse 0 collisions 0

lo: drapeaux = 73 mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 :: 1 prefixlen 128 scopeid 0x10

boucle txqueuelen 1000 (boucle locale)

Paquets RX 1196 octets 105396 (105,3 Ko)

Erreurs RX 0 supprimées 0 dépassements 0 trame 0

Paquets TX 1196 octets 105396 (105,3 Ko)

Erreurs TX 0 abandonné 0 dépassements 0 porteuse 0 collisions 0

Réseau d’annonces

Exécutez la commande ls pour vérifier tous les réseaux en cours d’exécution sur l’hôte actuel. Vous pouvez voir, sept réseaux sont actuellement présents, y compris le pont, l’hôte et aucun qui est créé automatiquement lorsque vous installez Docker. En fonction des conteneurs que j’ai gérés dans le passé, il existe également des détails sur d’autres réseaux personnalisés.

[protégé par e-mail]: ~ $ docker network ls

ÉTENDUE DU PILOTE DE NOM D’ID DU RÉSEAU

fec751a6ae21 pont pont local

21943b20735d docker_gwbridge bridge local

f51d1f3379e0 hôte hôte local

ppp8i7tvrxa0 swarm overlay overlay swarm

ba68f73abeed mean-app_default bridge local

d466e75d86fa mean_default bridge local

5e5d9a192c00 aucun null local

Réseau d’inspection

Vous pouvez exécuter la commande inspect pour obtenir tous les détails sur un type de réseau. Il fournit des informations sur le réseau, notamment le nom, l’ID, l’heure de création, l’étendue, le pilote, les détails de configuration tels que l’adresse de sous-réseau et de passerelle. Je donnerai également des détails sur le conteneur si un conteneur est opérationnel. Sinon, il renverra une chaîne vide.

[protégé par e-mail]: ~ $ docker network inspect bridge

[

{

"Nom": "pont",

"Id": "fec751a6ae21f20a06cdc6eb823e773caec063b6bf9a388016594e59fd1db475",

"Créé": "2019-08-01T10: 30: 27.595054009-04: 00",

"Portée": "local",

"Chauffeur": "pont",

"EnableIPv6": faux,

"IPAM": {

"Chauffeur": "défaut",

"Les options": nul,

"Config": [

{

"Sous-réseau": "172.17.0.0/16",

"passerelle": "172.17.0.1"

}

]

},

"Interne": faux,

"Attachable": faux,

"Entrée": faux,

"ConfigFrom": {

"Réseau": ""

},

"ConfigOnly": faux,

"Conteneurs": {},

"Les options": {

"com.docker.network.bridge.default_bridge": "vrai",

"com.docker.network.bridge.enable_icc": "vrai",

"com.docker.network.bridge.enable_ip_masquerade": "vrai",

"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",

"com.docker.network.bridge.name": "docker0",

"com.docker.network.driver.mtu": "1500"

},

"Étiquettes": {}

}

]

Créer un réseau

En utilisant la commande create, vous pouvez créer votre propre réseau. Vous devez mentionner le type de pilote avec l’indicateur –driver, dans l’exemple ci-dessous, j’utilise le type de pont.

[protégé par e-mail]: ~ $ docker network create –driver bridge geekflare_network

08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409

Exécutez la commande ls pour vérifier si le réseau a été créé.

[protégé par e-mail]: ~ $ docker network ls

ÉTENDUE DU PILOTE DE NOM D’ID DU RÉSEAU

fec751a6ae21 pont pont local

21943b20735d docker_gwbridge bridge local

08e0da91f6de geekflare_network bridge local

f51d1f3379e0 hôte hôte local

ppp8i7tvrxa0 swarm overlay overlay swarm

ba68f73abeed mean-app_default bridge local

d466e75d86fa mean_default bridge local

5e5d9a192c00 aucun null local

Maintenant, je vais exécuter un conteneur Docker sur le réseau que j’ai créé. J’utilise un simple conteneur de serveur apache dans la commande ci-dessous.

[protégé par e-mail]: ~ $ docker run -it -d –network = geekflare_network httpd

38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002

Exécution de la commande d’inspection pour vérifier toutes les informations de geekflare_network. Vous pouvez trouver les détails du conteneur cette fois dans cette inspection de la sortie; le nom du conteneur est determiné_dubinsky.

[protégé par e-mail]: ~ $ docker network inspecter geekflare_network

[

{

"Nom": "geekflare_network",

"Id": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Créé": "2019-09-03T13: 56: 36.244295204-04: 00",

"Portée": "local",

"Chauffeur": "pont",

"EnableIPv6": faux,

"IPAM": {

"Chauffeur": "défaut",

"Les options": {},

"Config": [

{

"Sous-réseau": "172.21.0.0/16",

"passerelle": "172.21.0.1"

}

]

},

"Interne": faux,

"Attachable": faux,

"Entrée": faux,

"ConfigFrom": {

"Réseau": ""

},

"ConfigOnly": faux,

"Conteneurs": {

"38a0b0646da1a0045afcf7aa0cd6228b851f74107a6718bb19d599e896df1002": {

"Nom": "determiné_dubinsky",

"EndpointID": "30d252720e0f381ba01d6f5414525dff8587abcf3c4920100f112898a52c8a23",

"Adresse Mac": "02: 42: ac: 15: 00: 02",

"IPv4Address": "172.21.0.2/16",

"IPv6Address": ""

}

},

"Les options": {},

"Étiquettes": {}

}

]

Déconnecter le réseau

Pour déconnecter le réseau du conteneur, exécutez la commande ci-dessous. Vous devez mentionner le nom du réseau et le nom du conteneur dans la commande de déconnexion.

[protégé par e-mail]: ~ $ docker network déconnecter geekflare_network determiné_dubinsky

Ce réseau n’exécutera plus le conteneur determiné_dubinsky; le champ conteneur sera vide.

[protégé par e-mail]: ~ $ docker network inspecter geekflare_network

[

{

"Nom": "geekflare_network",

"Id": "08e0da91f6de6c640b1b6f8a8602973f310b8ee9b04961389b7dfda842ccc409",

"Créé": "2019-09-03T13: 56: 36.244295204-04: 00",

"Portée": "local",

"Chauffeur": "pont",

"EnableIPv6": faux,

"IPAM": {

"Chauffeur": "défaut",

"Les options": {},

"Config": [

{

"Sous-réseau": "172.21.0.0/16",

"passerelle": "172.21.0.1"

}

]

},

"Interne": faux,

"Attachable": faux,

"Entrée": faux,

"ConfigFrom": {

"Réseau": ""

},

"ConfigOnly": faux,

"Conteneurs": {},

"Les options": {},

"Étiquettes": {}

}

]

Pour créer un réseau autre que bridge, vous devez mentionner le nom du pilote autre que bridge. Pour créer un réseau de superposition, exécutez la commande ci-dessous.

[protégé par e-mail]: ~ $ docker network create –driver overlay geekflare_network_2

ynd2858eu1cngwhpc40m3h1nx

[protégé par e-mail]: ~ $ docker network ls

ÉTENDUE DU PILOTE DE NOM D’ID DU RÉSEAU

fec751a6ae21 pont pont local

21943b20735d docker_gwbridge bridge local

08e0da91f6de geekflare_network bridge local

f51d1f3379e0 hôte hôte local

ppp8i7tvrxa0 swarm overlay overlay swarm

ba68f73abeed mean-app_default bridge local

d466e75d86fa mean_default bridge local

5e5d9a192c00 aucun null local

ynd2858eu1cn essaim de superposition geekflare_network_2

Pour créer un réseau hôte, mentionnez l’hôte avec l’indicateur –driver. L’exemple ci-dessous renvoie une erreur car une seule instance de réseau hôte est autorisée, qui était déjà en cours d’exécution auparavant. Donc, cette commande ne créera pas un autre réseau hôte.

[protégé par e-mail]: ~ $ docker network create –driver host geekflare_network_3

Réponse d’erreur du démon: une seule instance de "hôte" le réseau est autorisé

Conclusion

C’était tout sur la mise en réseau des dockers et comment vous pouvez connecter, déconnecter, créer, inspecter les réseaux de dockers. Essayez ces commandes pour vous familiariser avec la mise en réseau Docket. Si vous êtes curieux d’apprendre Net Devops, consultez ce Cours Udemy.

MOTS CLÉS:

  • Docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map