Docker Bootcamp – Mise en réseau, partie 2

Bienvenue à nouveau dans Docker Bootcamp . Dans cet article, nous examinerons à nouveau le réseautage. Dans le premier article sur la mise en réseau nous avons examiné les différents types d'isolement de réseau et de conteneur disponibles via docker. Ici, nous allons mapper les ports du conteneur vers l'hôte et nous connecter aux services exécutés à l'intérieur du conteneur.
- Adresse IP – Représente l'emplacement d'une interface réseau sur un réseau. Les conteneurs se voient attribuer une adresse IP unique au démarrage et perdent l'adresse IP lorsqu'ils sont arrêtés.
- Interface réseau – Représente un emplacement et une adresse d'un périphérique réseau.
- Port – Représente l'expéditeur ou le destinataire de un message sur le réseau. L'expéditeur et le destinataire sont des applications qui écoutent sur le port spécifié en attente d'une requête et retournent une réponse.
- inspect – Afficher toutes les métadonnées sur une image ou un conteneur au format JSON
- logs – Afficher logs pour un conteneur
- run – Créer et démarrer un nouveau conteneur
- port – Liste des mappages de ports pour un conteneur
Vous pouvez trouver une liste complète des commandes et tous les indicateurs disponibles sur https://docs.docker.com/engine/reference/commandline/docker/ .
run
docker run [options] image [command] [args…]
Sorties: ContainerID
–expose | O | Expose un port ou une plage de ports (ne publie pas automatiquement sur l'hôte) | |
–publish | -p | O | Publie un port exposé sur un ip spécifié: port ou port sur l'hôte |
–publish-all | -P | O | Publie tous les ports exposés sur des ports aléatoires sur l'hôte (permet d'éviter les conflits manuels de mappage de port) |
Publier – Aucun
- Créer et démarrer un conteneur détaché
- docker run -d –name ngnone nginx
- Afficher les journaux du conteneur
- docker enregistre ngnone
- Le conteneur est en cours d'exécution et prêt pour le démarrage
- docker enregistre ngnone
- Afficher les mappages de ports
- Afficher les métadonnées du conteneur
- docker inspecte ngnone
- Sous Config / ExposedPorts, vous pouvez voir que le conteneur déclare qu'il écoute sur le port 80
- Sous HostConfig / PortBindings, vous pouvez voir une liste vide
- Sous NetworkSettings / Ports, vous pouvez voir que le port 80 est nul
- docker inspecte ngnone
- Ouvrez un navigateur et accédez à http: // localhost
- Rechercher les paramètres réseau et les adresses IP d'hôte disponibles
- ipconfig
- Notez l'adresse IP4 de chacun de vos adaptateurs réseau connectés
- ipconfig
- Ouvrez un navigateur et accédez à http: // adresseip
- Effectuez cette opération pour chacune des adresses IP disponibles sur votre machine
- La page n'est pas trouvée à chaque fois
- Effectuez cette opération pour chacune des adresses IP disponibles sur votre machine
- Arrêter un conteneur en cours d'exécution
Publier – Toutes les adresses IP de l'hôte
- Créer et démarrer un conteneur détaché et mapper le port exposé à un port d'hôte spécifique
- docker run -d -p 8080: 80 –name ngnpub1 nginx
- Afficher les journaux du conteneur
- Docker enregistre ngpub1
- Le conteneur est en cours d'exécution et prêt à démarrer
- Docker enregistre ngpub1
- Afficher les mappages de ports
- port docker ngpub1
- La liste des mappages de ports s'affiche
- Le port 80 du conteneur est mappé à 0.0.0.0:8080 sur l'hôte (toutes les adresses IP d'hôte disponibles)
- port docker ngpub1
- Afficher les métadonnées du conteneur
- docker inspecter ngpub1
- Sous Config / ExposedPorts, vous pouvez voir que le conteneur déclare qu'il écoute sur le port 80
- Sous HostConfig / PortBindings, vous pouvez voir que le port du conteneur 80 est mappé sur le port hôte 8080
- Sous NetworkSettings / Ports, vous peut voir que le port de conteneur 80 est mappé au port d'hôte 8080
- docker inspecter ngpub1
- Ouvrez un navigateur et accédez à http: // localhost : 8080
- Rechercher les paramètres réseau et les adresses IP d'hôte disponibles
- Ipconfig
- Notez l'adresse IP4 de chacun de vos adaptateurs réseau connectés
- Ipconfig
- Ouvrez un navigateur et accédez à http: // adresseip: 8080
- Effectuez cette opération pour chacune des adresses IP disponibles sur votre machine
- Afficher la page d'accueil de Nginx à chaque fois
- Effectuez cette opération pour chacune des adresses IP disponibles sur votre machine
- Arrêter un conteneur en cours d'exécution
Publier – Adresses IP d'hôte spécifiques
- Rechercher les paramètres réseau et les adresses IP d'hôte disponibles
- ipconfig
- Choisissez une adresse IP4 à utiliser pour cet exemple
- ipconfig
- Créez et démarrez un conteneur détaché et mappez le port exposé à un port d'hôte spécifique sur une adresse IP d'hôte spécifique
- docker run -d -p
: 8181: 80 –name ngnpub2 nginx
- docker run -d -p
- Afficher les journaux du conteneur
- Docker enregistre ngpub2
- Le conteneur est en cours d'exécution et prêt à démarrer
- Docker enregistre ngpub2
- Afficher les mappages de ports
- port docker ngpub2
- La liste des mappages de ports s'affiche
- Le port 80 du conteneur est mappé à
: 8181 sur l'hôte
- port docker ngpub2
- Afficher les métadonnées du conteneur
- docker inspecter ngpub2
- Sous Config / ExposedPorts, vous pouvez voir que le conteneur déclare qu'il écoute sur le port 80
- Sous HostConfig / PortBindings, vous pouvez voir que le port du conteneur 80 est mappé sur le port hôte 8181 sur l'IP hôte spécifié
- Sous NetworkSettings / Ports, vous pouvez voir que le port 80 du conteneur est mappé au port hôte 8181 sur l’IP hôte spécifié
- docker inspecter ngpub2
- Ouvrez un navigateur et accédez à http: // localhost : 8181
- Ouvrez un navigateur et accédez à http: // adresseip: 8181
- Effectuez cette opération pour chacune des adresses IP disponibles sur votre machine
- Afficher la page d'accueil de Nginx uniquement pour l'adresse IP de l'hôte spécifiée
- Effectuez cette opération pour chacune des adresses IP disponibles sur votre machine
- Arrêter un conteneur en cours d'exécution
Publier – Tous les ports exposés
- Créer et démarrer un conteneur détaché et mapper le port exposé à un port hôte non spécifié
- docker run -d -P –name ngall nginx
- Afficher les journaux du conteneur
- docker logs ngall
- Le conteneur est en cours d'exécution et prêt pour le démarrage
- docker logs ngall
- Afficher les mappages de ports
- port docker ngall
- La liste des mappages de ports s'affiche
- Le port 80 du conteneur est mappé à 0.0.0.0:
sur l'hôte (toutes les adresses IP d'hôte disponibles)
- port docker ngall
- Afficher les métadonnées du conteneur
- docker inspecter ngpub1
- Sous Config / ExposedPorts, vous pouvez voir que le conteneur déclare qu'il écoute sur le port 80
- Sous HostConfig / PortBindings, vous pouvez voir une liste vide
- Sous NetworkSettings / Ports, vous pouvez voir le port du conteneur 80 est mappé au port hôte
- docker inspecter ngpub1
- Ouvrez un navigateur et accédez à http: // localhost: <random port number>
- Rechercher les paramètres réseau et les adresses IP d'hôte disponibles
- Ipconfig
- Notez l'adresse IP4 de chacun de vos adaptateurs réseau connectés
- Ipconfig
- Ouvrez un navigateur et accédez à http: // adresseip:
- Effectuez cette opération pour chacune des adresses IP disponibles sur votre machine
- Afficher la page d'accueil de Nginx à chaque fois
- Effectuez cette opération pour chacune des adresses IP disponibles sur votre machine
- Arrêter un conteneur en cours d'exécution
- Créez et démarrez un conteneur détaché et mappez le port exposé à un port hôte non spécifié
- docker run -d -P –name ngall2 nginx
- Afficher les mappages de ports
- port docker ngall2
- Notez que le port de conteneur 80 est mappé vers un port différent de celui du conteneur précédent
- port docker ngall2
- Arrêter un conteneur en cours d'exécution
Exposer un port
- Créer et démarrer un conteneur interactif
- docker run -it –name bbconceal busybox / bin / sh
- Afficher les métadonnées du conteneur
- docker inspecte bbconceal
- Sous Config / ExposedPorts, vous pouvez voir que cette clé n'existe pas
- Sous HostConfig / PortBindings, vous pouvez voir une liste vide
- Sous NetworkSettings / Ports, vous pouvez cette clé n'existe pas
- Par défaut busybox n'expose aucun port
- docker inspecte bbconceal
- Créez un dossier sur l'hôte pour servir de volume wwwroot
- Créez un fichier index.html dans le dossier hôte wwwroot
- Modifiez le fichier et ajoutez le html hello world de base
- Créez et démarrez un conteneur interactif, attachez un volume, exposez un port et mappez le port exposé à un port hôte spécifié
- docker run -it -v
wwwroot: / var / www / html –expose 80 -p 8282: 80 –name bbexpose busybox / bin / sh
- docker run -it -v
- Afficher les métadonnées du conteneur
- docker inspecter bbexpose
- Sous Config / ExposedPorts, cette clé existe maintenant et déclare qu'elle écoute sur le port 80
- Sous HostConfig / PortBindings, cette liste est maintenant remplie et mappe le port 80 au port hôte 8282
- Sous NetworkSettings / Ports, ce La clé existe maintenant et déclare qu'elle mappe le port 80 au port hôte 8282
- docker inspecter bbexpose
- Démarrez le serveur Web à l'intérieur du conteneur
- httpd -p 80 -h / var / www / html
- Exécutez le serveur Web sur le port 80 et définissez la racine du document sur le volume monté
- httpd -p 80 -h / var / www / html
- Ouvrez un navigateur et accédez au http: // localhost: 8282
- Afficher le code HTML hello world de base que vous avez créé
- Arrêter d'exécuter des conteneurs
- docker stop bbconceal bbexpose
Après avoir exécuté ces exemples, vous devriez comprendre comment les conteneurs se révèlent à l'hôte et les différentes manières de gérer le mappage entre les conteneurs et la machine hôte. N'oubliez pas de nettoyer vos conteneurs. Rejoignez-moi la prochaine fois que nous modifierons les configurations réseau à l'intérieur de nos conteneurs.
Source link