CodeGym /Cours /Docker SELF /Publication des ports des conteneurs

Publication des ports des conteneurs

Docker SELF
Niveau 17 , Leçon 3
Disponible

4.1 Concepts de base de la publication des ports

La publication des ports des conteneurs dans Docker permet aux services exécutés à l'intérieur des conteneurs d'être accessibles depuis le réseau externe ou depuis l'hôte. C'est une partie importante de la config des applications multi-conteneurs, car cela permet d'interagir avec des services comme des serveurs web, des bases de données et d'autres applis réseau. Dans cette conférence, on va voir comment publier les ports des conteneurs et configurer l'accès aux services.

Concepts de base de la publication des ports

  • Mapping des ports: correspondance entre le port de l'hôte et le port du conteneur.
  • Paramètre -p/--publish: utilisé pour définir le mapping des ports lors du lancement d'un conteneur.
  • Paramètre -P/--publish-all: affectation automatique des ports de l'hôte pour tous les ports exportés du conteneur.

Exemple d'utilisation du paramètre -p

Lorsque vous démarrez un conteneur, vous pouvez utiliser l'option -p pour mapper un port de l'hôte à un port du conteneur. Format de la commande :

Terminal

docker run -d -p <host_port>:<container_port> <image> 

Exemple 1 : Publication du port du serveur web Nginx

On va lancer un conteneur avec Nginx et publier le port 80 du conteneur sur le port 8080 de l'hôte.

Maintenant, Nginx sera dispo à l'adresse http://localhost:8080.

Terminal

docker run -d -p 8080:80 --name mynginx nginx 

Exemple 2 : Publication de plusieurs ports

Vous pouvez publier plusieurs ports en spécifiant plusieurs options -p.

Dans cet exemple, Nginx sera dispo en HTTP sur le port 8080 et en HTTPS sur le port 8443.

Terminal

docker run -d -p 8080:80 -p 8443:443 --name mynginx nginx 

Exemple d'utilisation du paramètre -P

Le paramètre -P publie automatiquement tous les ports spécifiés dans le Dockerfile ou dans les configs du conteneur, sur des ports aléatoires de l'hôte.

Exemple :

Terminal

docker run -d -P --name mynginx nginx 

Pour savoir quels ports ont été assignés, utilisez la commande docker port :

Terminal

docker port mynginx

Le résultat sera à peu près comme ça :

Terminal

80/tcp -> 0.0.0.0:32768
443/tcp -> 0.0.0.0:32769

4.2 Publication des ports dans Docker Compose

Pour assigner des ports dans Docker Compose, utilise la directive ports dans le fichier docker-compose.yml.

Exemple de fichier docker-compose.yml

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
      - "8443:443"

Lance Docker Compose :

Terminal

docker compose up -d 

Maintenant Nginx sera accessible via http://localhost:8080 et https://localhost:8443.

4.3 Paramètres supplémentaires pour la publication des ports

1. Limitation de l'adresse IP

Tu peux restreindre l'accès au port du conteneur en spécifiant l'adresse IP de l'hôte.

Exemple :

Dans cet exemple, Nginx sera accessible uniquement depuis le localhost à l'adresse http://127.0.0.1:8080.

Terminal

docker run -d -p 127.0.0.1:8080:80 --name mynginx nginx 

2. Utilisation d'une plage de ports

Tu peux spécifier une plage de ports à publier.

Exemple :

Terminal

docker run -d -p 8080-8081:80-81 --name mynginx nginx 

Conseils pratiques :

  • Publier uniquement les ports nécessaires : Publie seulement les ports réellement nécessaires pour accéder aux services afin de réduire les vulnérabilités potentielles.
  • Utilisation d'un pare-feu : Configure un pare-feu pour limiter l'accès aux ports publiés uniquement depuis des adresses IP de confiance.
  • Surveillance et journalisation : Utilise des outils de surveillance et de journalisation pour suivre l'accès aux ports publiés et détecter toute activité suspecte.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION