Lorsque que je vais lancer un serveur web comme nginx par exemple, il va rendre les pages web sur le port 80, mais seulement à l’intérieur du conteneur. Je n’y aurais pas accès car c’est totalement isolé, le conteneur a son propre réseau. Afin de pouvoir accéder aux pages web, je vais utiliser l’option -p qui va me permettre de spécifier le port de ma machine et lui dire vers quel port du conteneur je veux faire la liaison. De cette façon, je vais pouvoir accéder aux pages web via mon navigateur.
Voilà un exemple qui permet d’ouvrir le port 80 du conteneur sur le port 9001 de ma machine.
Et maintenant si je vais sur l’URL http://localhost:9001/ dans mon navigateur, je peux voir la page d’accueil de nginx.
Grâce à la commande suivante, je peux voir une colonne « PORTS » qui m’indique sur quel port de ma machine est exposé un conteneur.
Il existe aussi une commande pour obtenir les données de port d’un conteneur spécifique.
La notation est inversée (par rapport à un ls), mais elle est à mon sens, un peu plus juste.
Lors de mes tests, j’ai ouvert et fermé une bonne cinquantaine de conteneurs et au bout d’un moment je ne pouvais plus lancer de serveur web sur le port 9001 alors qu’il était disponible. Pour résoudre ce problème j’ai dû relancer Docker.
19/01/2019
Yann Vangampelaere - nouslesdevs -