Exposition des ports dans les conteneurs Docker
Lors de l'exécution d'applications dans des conteneurs Docker, il est souvent nécessaire d'exposer des ports au système hôte afin que les clients externes puissent accéder à l'application en cours d'exécution. Par défaut, les conteneurs Docker sont isolés du réseau hôte, et leurs ports internes ne sont pas accessibles de l'extérieur du conteneur.
Exposition des ports lors de la création du conteneur
Pour exposer un port d'un conteneur Docker, vous pouvez utiliser l'option -p ou --publish lors de la création d'un nouveau conteneur. La syntaxe de cette commande est :
docker run -p <port_hôte>:<port_conteneur> <nom_image>
Par exemple, pour exposer le port 8080 du conteneur au port 8080 du système hôte, vous exécuterez :
docker run -p 8080:8080 my-java-ee-app
Exposition de plusieurs ports
Vous pouvez exposer plusieurs ports en spécifiant l'option -p plusieurs fois :
docker run -p 8080:8080 -p 3306:3306 my-java-ee-app
Cela permettra d'exposer le port 8080 du conteneur au port 8080 de l'hôte, et le port 3306 du conteneur au port 3306 de l'hôte.
Liaison à une interface hôte spécifique
Par défaut, Docker liera les ports exposés à toutes les interfaces réseau disponibles sur le système hôte. Si vous souhaitez lier les ports à une interface spécifique, vous pouvez utiliser la syntaxe suivante :
docker run -p <adresse_IP_hôte>:<port_hôte>:<port_conteneur> <nom_image>
Par exemple, pour lier le port 8080 de l'interface 192.168.1.100 de l'hôte au port 8080 du conteneur, vous exécuterez :
docker run -p 192.168.1.100:8080:8080 my-java-ee-app
En comprenant comment exposer les ports dans les conteneurs Docker, vous pouvez vous assurer que vos applications Java EE exécutées dans les conteneurs sont accessibles aux clients externes.