CodeGym /Cours /Docker SELF /Redirection des ports

Redirection des ports

Docker SELF
Niveau 12 , Leçon 1
Disponible

7.1 Bases de la redirection des ports (Port forwarding)

La redirection des ports, c'est une fonctionnalité super importante de Docker qui permet aux applications dans les conteneurs d'être accessibles de l'extérieur. C'est essentiel pour se connecter à des serveurs web, des bases de données ou d'autres services lancés dans les conteneurs depuis la machine hôte ou même d'autres réseaux.

Par défaut, les conteneurs fonctionnent dans un réseau isolé. Pour rendre un service dans un conteneur accessible, Docker redirige les ports du conteneur vers les ports de la machine hôte.

Pour rediriger les ports, on utilise le paramètre -p ou --publish de la commande docker run.

Syntaxe


docker run -p [HOST_PORT]:[CONTAINER_PORT] [OPTIONS] IMAGE [COMMAND] [ARG...]

Où:

  • HOST_PORT: port sur la machine hôte par lequel le trafic va passer.
  • CONTAINER_PORT: port à l'intérieur du conteneur où le trafic sera redirigé.
  • OPTIONS: paramètres supplémentaires pour configurer le conteneur.
  • IMAGE: image à partir de laquelle le conteneur est créé.
  • COMMAND: commande exécutée à l'intérieur du conteneur.
  • ARG...: arguments pour la commande.

Exemple d'utilisation de base

Dans cet exemple, le port 80 du conteneur, où fonctionne un serveur web Nginx, est redirigé vers le port 8080 de la machine hôte. Après ça, tu pourras ouvrir le serveur web dans ton navigateur à l'adresse http://localhost:8080.


docker run -d -p 8080:80 nginx

7.2 Autres options de redirection des ports

1. Redirection multiple des ports

Docker permet de rediriger plusieurs ports en même temps. Pour cela, on utilise plusieurs options -p.

Exemple

Dans cet exemple, le port 80 du conteneur est redirigé vers le port 8080 de l'hôte, et le port 443 du conteneur est redirigé vers le port 8443 de l'hôte.



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

2. Redirection des ports avec spécification d'adresse IP

Tu peux indiquer une adresse IP spécifique à laquelle sera lié le port redirigé. C'est vachement utile si la machine host dispose de plusieurs interfaces réseau et que tu veux limiter l'accès au conteneur.

Exemple :

Dans cet exemple, le port 80 du conteneur est redirigé vers le port 8080 uniquement sur l'interface 127.0.0.1 de la machine hôte. Ça veut dire que l'accès au service sera possible seulement depuis la machine hôte elle-même.


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

3. Redirection d'une plage de ports

Si tu as besoin de rediriger plusieurs ports à la fois, Docker supporte aussi les plages.

Exemple :

Dans cet exemple, les ports allant de 7000 à 8000 du conteneur sont redirigés vers les ports correspondants de la machine hôte.


docker run -d -p 7000-8000:7000-8000 someimage

7.3 Scénarios pratiques d'utilisation

1. Accès au serveur web

La redirection des ports est le plus souvent utilisée pour permettre l'accès aux serveurs web lancés à l'intérieur des conteneurs.


docker run -d -p 8080:80 nginx 

Après avoir exécuté cette commande, le serveur web Nginx fonctionnant sur le port 80 du conteneur sera accessible sur le port 8080 de la machine hôte.

2. Accès à la base de données

La redirection des ports est également utile pour accéder aux bases de données lancées dans des conteneurs.


docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword postgres

Dans cet exemple, PostgreSQL, fonctionnant sur le port 5432 du conteneur, sera accessible sur le port 5432 de la machine hôte.

3. Tests et développement

Les conteneurs Docker sont souvent utilisés pour créer des environnements de test isolés. La redirection des ports permet aux développeurs de lancer et de tester des applications comme si elles fonctionnaient dans des conditions réelles.


docker run -d -p 8080:80 -p 8443:443 myapp

Dans cet exemple, l'application est testée sur les ports 8080 et 8443, ce qui correspond aux ports standard utilisés dans un environnement de production.

7.4 Recommandations supplémentaires

1. Protection des ports

Lorsque tu rediriges des ports, n'oublie pas la sécurité. Les ports ouverts peuvent devenir des cibles d'attaques. Redirige seulement les ports dont tu as réellement besoin et utilise un pare-feu pour limiter l'accès.

2. Pare-feux et NAT

Pour renforcer la sécurité et gérer le trafic, utilise des pare-feux et Network Address Translation (NAT). Cela te permettra de limiter l'accès à tes services et de contrôler les connexions réseau.

3. Monitoring et logs

Configure le monitoring et la collecte des logs pour surveiller le trafic sur les ports redirigés. Cela t'aidera à détecter rapidement et à réagir face à des activités suspectes.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION