Trouver le port public pour un index spécifique de conteneur
Dans certains scénarios avancés, un conteneur peut exposer plusieurs fois le même port interne, potentiellement mappé à différents ports hôtes ou interfaces. Bien que moins courant pour des services simples comme Nginx, c'est possible. Dans ces cas, la commande docker port
peut retourner plusieurs mappages pour un seul port interne.
Pour récupérer un mappage spécifique lorsque plusieurs existent, vous pouvez utiliser un index. Le résultat de docker port
pour un port interne donné est une liste de mappages. Vous pouvez accéder à un mappage spécifique par son index, en commençant à 0.
Supposons, à titre de démonstration, que notre conteneur Nginx ait plusieurs mappages pour le port 80. Pour obtenir le premier mappage (index 0), vous utiliseriez le format de commande suivant :
docker port [CONTAINER_ID] [CONTAINER_PORT]/[PROTOCOL]/[INDEX]
En reprenant notre exemple Nginx, pour obtenir le premier mappage du port interne 80 en TCP, vous utiliseriez :
docker port [CONTAINER_ID] 80/tcp/0
Remplacez [CONTAINER_ID]
par l'ID réel de votre conteneur Nginx.
Comme notre conteneur Nginx n'a qu'un seul mappage pour le port 80/tcp, cette commande retournera le même résultat que docker port [CONTAINER_ID] 80/tcp
, soit 0.0.0.0:8080
.
Bien que cet exemple spécifique avec Nginx ne montre pas pleinement l'utilité de l'indexation (puisqu'il n'y a qu'un seul mappage), comprendre cette fonctionnalité est important pour des configurations de conteneurs plus complexes où plusieurs mappages pour le même port interne pourraient exister.