NGINX est un serveur web. Un conteneur NGINX doit donc permettre d'accéder à ce serveur via HTTP sur le port 80
.
Accéder à l'adresse http://127.0.0.1:80.
Résultat ? "La connexion a échoué"
Publier des ports exposés
Par défaut, un conteneur n'est pas ouvert vers l'extérieur, il est isolé. Cela évite par exemple qu'il entre en conflit avec un serveur web installé sur la machine hôte.
Lors du démarrage, on peut indiquer de publier tous les ports exposés par le conteneur à la machine hôte avec l'option -P
. La méthode plus conventionnelle consiste à indiquer une correspondance entre les ports de l'hôte et ceux du conteneur avec l'option -p port-hote:port-conteneur
:
docker run -d --name web-srv -p 8080:80 nginx:latest
Le serveur web est désormais accessible à l'addresse http://127.0.0.1:8080.
Exemple:
Les 3 conteneurs NGINX ont le port interne80
exposé. Les conteneursnginx-a
etnginx-b
sont accessibles sur la machine hôte sur les ports8080
et8888
. Le conteneurnginx-c
n'a pas son port80
publié, il n'est donc pas accessible.