Docker est une plate-forme de conteneurisation open source qui permet aux développeurs de créer, déployer et exécuter des applications, rendant les processus de développement, de déploiement, d'exploitation et de maintenance plus faciles et plus efficaces. Lorsque les développeurs exécutent des applications dans des conteneurs Docker, ils doivent parfois ouvrir certains ports de l'application.
Les ports ouverts permettent à d'autres ordinateurs du réseau d'accéder aux applications dans un conteneur Docker en cours d'exécution. À l'intérieur d'un conteneur Docker, une application peut écouter sur un ou plusieurs ports. Par exemple, les serveurs Web écoutent généralement sur le port 80. Si le port n'est pas ouvert correctement, les ordinateurs externes ne pourront pas se connecter à l'application.
Docker propose plusieurs méthodes pour ouvrir et gérer les ports. Dans cet article, nous explorerons différentes manières d'ouvrir et de gérer les ports dans les conteneurs Docker.
Utilisez la commande docker run pour ouvrir le port
Les développeurs peuvent utiliser la commande Docker run pour ouvrir le port. Lors de la création d'un nouveau conteneur, vous pouvez utiliser l'option -p pour spécifier les ports à ouvrir. Cette option permet de mapper les ports à l'intérieur du conteneur avec les ports de l'hôte.
Par exemple, nous pouvons démarrer un nouveau conteneur de serveur Web Nginx et mapper le port 80 du conteneur au port 8000 de l'hôte à l'aide de la commande suivante :
docker run -d -p 8000:80 nginx
Dans la commande ci-dessus, l'option -d est utilisée pour spécifier que le Le conteneur est exécuté en arrière-plan. L'option -p est utilisée pour spécifier le port à mapper.
Ouvrir les ports à l'aide de fichiers Docker-compose
Docker Compose est un outil permettant de définir et d'exécuter des applications Docker multi-conteneurs. Grâce à Docker Compose, les développeurs peuvent définir la structure et les dépendances d'une application multi-conteneurs à l'aide du fichier docker-compose.yml. Chaque conteneur d'une application conteneur possède son propre port, et Docker Compose fournit un moyen simple de gérer ces ports.
Dans les fichiers Docker Compose, les développeurs peuvent définir des mappages de ports pour chaque conteneur. Par exemple, ce qui suit est un fichier Docker Compose qui définit un serveur Web et un conteneur de base de données et mappe leurs ports aux ports de l'hôte :
version: "3.7" services: web: build: . ports: - "8000:80" db: image: mysql:5.7 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: pass
Dans le fichier Docker Compose ci-dessus, le conteneur Web sera sur le port 8000 de l'hôte. Exécutez et mapper le port 80 du conteneur sur le port hôte. De même, le conteneur de base de données s'exécutera sur le port 3306 de l'hôte et mappera le port 3306 du conteneur au port de l'hôte.
Utilisez Dockerfile pour ouvrir les ports
Dockerfile est un fichier de script utilisé pour créer automatiquement des images Docker. Dans le Dockerfile, les développeurs peuvent spécifier les ports à ouvrir et d'autres paramètres associés. Lorsque vous utilisez un Dockerfile pour créer une image Docker, Docker utilisera les instructions du Dockerfile pour ouvrir les ports.
Ce qui suit est un simple Dockerfile pour créer une image de serveur Web Nginx basé sur Ubuntu et ouvrir le port :
FROM ubuntu:18.04 RUN apt-get update && apt-get install nginx -y EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Dans le Dockerfile ci-dessus, la directive EXPOSE est utilisée pour spécifier que le port ouvert est 80. Après avoir construit cette image, l'application s'exécutera sur le port 80 du conteneur.
Résumé
Dans cet article, nous avons discuté de différentes manières d'ouvrir et de gérer les ports dans les conteneurs Docker. À l'aide de la commande docker run, Docker Compose et Dockerfile, les développeurs peuvent facilement ouvrir les ports requis et permettre aux applications de se connecter à d'autres ordinateurs du réseau. Lorsque les développeurs exécutent des applications dans des conteneurs Docker, il est très important d'ouvrir correctement les ports.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!