Connexion du conteneur Docker
Auparavant, nous avons implémenté l'accès aux services exécutés dans des conteneurs Docker via des ports réseau. Ensuite, connectons-nous à un conteneur Docker via le port
Mappage du port réseau
Nous avons créé un conteneur pour l'application Python.
php@php:~$ docker run -d -P training/webapp python app.py fce072cc88cee71b1cdceb57c2821d054a4a59f67da6b416fceb5593f059fc6d
De plus, nous pouvons spécifier l'adresse réseau à laquelle le conteneur est lié, comme la liaison 127.0.0.1.
Nous utilisons le paramètre -P pour créer un conteneur et utilisons docker ps pour voir que le port 5000 est lié à l'hôte du port 32768.
php@php:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fce072cc88ce training/webapp "python app.py" 4 minutes ago Up 4 minutes 0.0.0.0:32768->5000/tcp grave_hopper
Nous pouvons également utiliser le drapeau -p pour spécifier que le port du conteneur est lié au port hôte.
La différence entre les deux méthodes est la suivante :
-P : est le port interne du conteneur qui est mappé de manière aléatoire au port haut de l'hôte.
-p : est le port interne du conteneur lié au port hôte spécifié.
php@php:~$ docker run -d -p 5000:5000 training/webapp python app.py 33e4523d30aaf0258915c368e66e03b49535de0ef20317d3f639d40222ba6bc0
php@php:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 33e4523d30aa training/webapp "python app.py" About a minute ago Up About a minute 0.0.0.0:5000->5000/tcp berserk_bartik fce072cc88ce training/webapp "python app.py" 8 minutes ago Up 8 minutes 0.0.0.0:32768->5000/tcp grave_hopper
De plus, nous pouvons spécifier l'adresse réseau à laquelle le conteneur est lié, comme la liaison 127.0.0.1.
php@php:~$ docker run -d -p 127.0.0.1:5001:5002 training/webapp python app.py 95c6ceef88ca3e71eaf303c2833fd6701d8d1b2572b5613b5a932dfdfe8a857c php@php:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 95c6ceef88ca training/webapp "python app.py" 6 seconds ago Up 6 seconds 5000/tcp, 127.0.0.1:5001->5002/tcp adoring_stonebraker 33e4523d30aa training/webapp "python app.py" 3 minutes ago Up 3 minutes 0.0.0.0:5000->5000/tcp berserk_bartik fce072cc88ce training/webapp "python app.py" 10 minutes ago Up 10 minutes 0.0.0.0:32768->5000/tcp grave_hopper
De cette façon, nous pouvons accéder au port 5002 du conteneur en accédant à 127.0.0.1:5001.
Dans l'exemple ci-dessus, le port TCP est lié par défaut. Si vous souhaitez lier le port UPD, vous pouvez ajouter /udp après le port. La commande
php@php:~$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py 6779686f06f6204579c1d655dd8b2b31e8e809b245a97b2d3a8e35abe9dcd22a php@php:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6779686f06f6 training/webapp "python app.py" 4 seconds ago Up 2 seconds 5000/tcp, 127.0.0.1:5000->5000/udp drunk_visvesvaraya 95c6ceef88ca training/webapp "python app.py" 2 minutes ago Up 2 minutes 5000/tcp, 127.0.0.1:5001->5002/tcp adoring_stonebraker 33e4523d30aa training/webapp "python app.py" 5 minutes ago Up 5 minutes 0.0.0.0:5000->5000/tcp berserk_bartik fce072cc88ce training/webapp "python app.py" 12 minutes ago Up 12 minutes 0.0.0.0:32768->5000/tcp grave_hopper
docker port nous permet de vérifier rapidement l'état de la liaison du port.
php@php:~$ docker port adoring_stonebraker 5002 127.0.0.1:5001
Connexion du conteneur Docker
Le mappage des ports n'est pas le seul moyen de connecter Docker à un autre conteneur.
Docker dispose d'un système de connexion qui permet de connecter plusieurs conteneurs entre eux et de partager des informations de connexion.
La connexion Docker créera une relation parent-enfant, où le conteneur parent pourra voir les informations du conteneur enfant.
Nom du conteneur
Lorsque nous créons un conteneur, Docker le nommera automatiquement. De plus, nous pouvons également utiliser l'indicateur --name pour nommer le conteneur, par exemple :
php@php:~$ docker run -d -P --name php training/webapp python app.py 43780a6eabaaf14e590b6e849235c75f3012995403f97749775e38436db9a441
Nous pouvons utiliser la commande docker ps pour afficher le nom du conteneur.
php@php:~$ docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 43780a6eabaa training/webapp "python app.py" 3 minutes ago Up 3 minutes 0.0.0.0:32769->5000/tcp php