Fermer

mars 25, 2021

Docker Bootcamp – Mise en réseau – Blogs parfaits


Bienvenue dans ma série Docker Bootcamp. Dans mon dernier message, je vous ai montré comment avoir un stockage persistant pour vos conteneurs. Dans cet article, nous examinerons le réseautage. J'ai inclus une terminologie de base du réseau, qui n'est pas directement liée à Docker, pour des informations supplémentaires.

Types de réseau Docker

Docker propose quatre configurations réseau différentes. Fermé, ponté, rejoint, ouvert. Chaque configuration a des implications de sécurité différentes.

  • Type de réseau Docker: Ponté – Un conteneur qui a à la fois une interface de bouclage et une interface Ethernet connectée à l'interface du pont docker. Il s'agit du type de réseau par défaut. Tous les conteneurs utilisant ce type font partie du réseau virtuel de Docker et peuvent communiquer entre eux. Ils ne sont pas accessibles par défaut depuis la machine hôte.
  • Type de réseau Docker: fermé – Un conteneur qui a une interface de bouclage mais pas une interface Ethernet. Rien en dehors du conteneur ne peut se connecter. Les programmes exécutés à l'intérieur du conteneur ne peuvent pas se connecter. Le type de réseau docker le plus sécurisé. À utiliser lorsque votre conteneur ne nécessite pas d'accès réseau.
  • Type de réseau Docker: Joint – Deux conteneurs ou plus qui partagent les mêmes interfaces de bouclage et Ethernet. Les conteneurs ont toujours leur propre mémoire et systèmes de fichiers isolés. À utiliser lorsque deux conteneurs doivent communiquer directement via l'interface de bouclage partagée.
  • Type de réseau Docker: Ouvert – Un conteneur qui a un accès complet à l'interface réseau de l'hôte en contournant le réseau virtuel docker. Le conteneur peut se lier à des ports protégés sur l'hôte, mais pas modifier les interfaces réseau. Il s'agit du type de réseau docker le moins sécurisé et doit être utilisé avec précaution.

Interfaces

  • Bridge Interface – Utilisé pour connecter plusieurs réseaux ensemble afin qu'ils fonctionnent comme un seul réseau.
  • Ethernet Interface – Utilisé pour connecter une interface réseau à d'autres interfaces réseau externes. Pensez-y comme une allée qui se connecte au réseau de routes.
  • Interface de bouclage – Utilisé pour connecter une interface réseau à la même interface réseau interne. Pensez-y comme une allée circulaire qui ne se connecte pas au réseau routier.
  • Interface réseau – Représente l'emplacement et l'adresse d'un périphérique réseau. Pensez-y comme une maison située à une adresse postale avec une boîte aux lettres. Les messages sont livrés pour les personnes à l'adresse. Les messages sont envoyés pour livraison à des personnes à d'autres adresses.

Conditions supplémentaires

  • Domain Name Service (DNS) – Un protocole pour mapper des noms conviviaux à des adresses IP.
  • IP Address – Représente l'emplacement d'une interface réseau sur un réseau. Considérez-le comme une adresse postale. Les conteneurs se voient attribuer une adresse IP unique au démarrage et perdent l'adresse IP lorsqu'ils sont arrêtés.
  • Port – Représente l'expéditeur ou le destinataire d'un message. Considérez-le comme plusieurs personnes dans la même maison qui peuvent envoyer et recevoir du courrier en utilisant la même boîte aux lettres (interface réseau) mais qui ont leur propre emplacement désigné dans la boîte aux lettres (interface réseau).
  • Protocole – Une «langue» que les deux parties s'entendent pour comprendre comment communiquer. Quelques exemples de protocoles incluent HTTP, FTP, TCP et IP.
  • Routage – Le chemin emprunté par un message pour aller d'une interface réseau à une autre. Pensez à cela comme une lettre allant d'une boîte aux lettres (une interface réseau), au bureau de poste local (une interface réseau), au bureau de poste régional (une interface réseau), à un autre bureau de poste régional (une interface réseau), vers le bas au bureau de poste local le plus proche (une interface réseau), et finalement livré à la bonne boîte aux lettres (une interface réseau).
  • Virtual Network – Séparé de l'interface réseau physique de l'hôte. Utilisé pour fournir l'isolation du conteneur. Docker gère son propre réseau virtuel qui est connecté à l'hôte. Cette interface s'appelle docker0.
  • create – Crée un nouveau conteneur dans un état arrêté

Vous pouvez trouver une liste complète des commandes et tous les indicateurs disponibles sur https://docs.docker.com /engine/reference/commandline/docker/[19459006memories[19659024memoriescreate[19659025Oftdockercreate[options] image [command] [args…]
Sorties: ContainerID

–network O Connecter un conteneur à un réseau
  • none – Crée un conteneur fermé
  • bridge – Crée un conteneur ponté (par défaut)
  • container: [containername] – Crée un conteneur joint
  • host – Crée un conteneur ouvert

[19659036] Conteneur fermé

  • Créer, démarrer et exécuter un conteneur interactif avec un réseau fermé
    • docker run -it –network none –name netclosed busybox / bin / sh
  • Afficher les paramètres réseau
    • afficher l'adresse IP
      • Remarquez que seule l'interface de bouclage existe (IP 127.0.0.1)
  • Essayez d'envoyer une requête ping à une interface réseau externe
    • ping -c 2 8.8.8.8 (serveur DNS public de Google)
      • Message d'avertissement "Le réseau est inaccessible"
  • Arrêter le conteneur

Conteneur ponté

  • Créer, démarrer et exécuter un conteneur interactif avec un réseau ponté
    • docker run -it –network bridge –name netbridge1 busybox / bin / sh
      • Puisque ponté est le type par défaut, vous pouvez omettre l'indicateur de réseau
  • Afficher les paramètres réseau
    • afficher l'adresse IP
      • Notez que l'interface de bouclage existe (IP 127.0.0.1)
      • Notez que l'interface Ethernet existe (l'IP varie selon la machine)
        • Notez l'adresse IP (la mienne était 172.17.0.2)
  • Essayez d'envoyer une requête ping à une interface réseau externe
    • ping -c 2 8.8.8.8 (serveur DNS public de Google)
  • Créer, démarrer et exécuter un conteneur interactif avec un réseau ponté
    • docker run -it –network bridge –name netbridge2 busybox / bin / sh
  • Afficher les paramètres réseau
    • afficher l'adresse IP
      • Remarquez que l'interface de bouclage existe (IP 127.0.0.1)
      • Notez que l'interface Ethernet existe (l'IP varie selon la machine)
        • Notez l'adresse IP (la mienne était 172.17.0.3)
  • Essayez d'envoyer une requête ping au conteneur netbridge1 depuis netbridge2
  • Essayez d'envoyer une requête ping au conteneur netbridge2 depuis netbridge1
  • Essayez d'envoyer une requête ping au conteneur netbridge1 à partir de l'hôte
    • ping 172.17.0.2
      • Notez le message d'expiration de la requête.
  • Arrêtez les conteneurs
    • docker stop netbridge1 netbridge2

Conteneur joint

  • Créer, démarrer et exécuter un conteneur interactif avec un réseau ponté
    • docker run -it –network bridge –name netjoin1 busybox / bin / sh
  • Afficher les paramètres réseau
    • afficher l'adresse IP
      • Remarquez que l'interface de bouclage existe (IP 127.0.0.1)
      • Notez que l'interface Ethernet existe (l'IP varie selon la machine)
        • Notez l'adresse IP (la mienne était 172.17.0.2)
  • Créer, démarrer et exécuter un conteneur interactif avec un réseau joint
    • docker run -it –network container: netjoin1 –name netjoin2 busybox / bin / sh
  • Afficher les paramètres réseau
    • afficher l'adresse IP
      • Notez que l'interface de bouclage existe (IP 127.0.0.1)
      • Notez que l'interface Ethernet existe
        • L'adresse IP correspond à celle de netjoin1
  • Arrêtez les conteneurs
    • docker stop netjoin1 netjoin2

Conteneur ouvert

  • Créer, démarrer et exécuter un conteneur interactif avec un réseau ouvert
    • docker run -it –network host –name netopen busybox / bin / sh
  • Afficher les paramètres réseau
    • afficher l'adresse IP
      • Notez que toutes les interfaces réseau hôte sont répertoriées, y compris le réseau virtuel docker0
  • Arrêter le conteneur

Restez à l'écoute pour mon prochain message dans cette série et n'oubliez pas de nettoyer vos conteneurs! Jusqu'à la prochaine fois, heureux conteneurs!




Source link