Maison > Article > Opération et maintenance > Comment mapper les ports dans les conteneurs Docker
Docker est un moteur de conteneur d'applications open source qui permet aux développeurs de packager, distribuer et exécuter rapidement n'importe quelle application, que ce soit localement, dans le cloud ou sur un appareil mobile, à l'aide de cet excellent outil. La plus grande fonctionnalité de Docker est que les conteneurs en cours d'exécution peuvent être rapidement déployés sur différents hôtes et que la cohérence de l'environnement est maintenue. En raison des excellentes performances et de la facilité d'utilisation de Docker, il a été largement utilisé dans le cloud computing, le DevOps, les microservices et d'autres domaines. Cet article présentera le mappage de ports pour les conteneurs Docker.
Chaque service dans un conteneur Docker doit occuper un numéro de port. Si le service exécuté à l'intérieur du conteneur doit communiquer avec un système externe, ce numéro de port doit être mappé à un port de l'hôte. Ce processus peut être appelé mappage de ports.
Dans Docker, vous pouvez démarrer un conteneur via la commande docker run
et spécifier les paramètres de mappage de port. Par exemple, en supposant qu'un service Web est en cours d'exécution dans le conteneur et que le port d'écoute est 8080
, nous pouvons utiliser la commande suivante pour mapper le port 8080
du conteneur au >8000
Port de l'hôte : docker run
命令来启动一个容器,并指定端口映射参数。例如,假设在容器内运行的是一个Web服务,监听端口为8080
,我们可以使用下面的命令将容器内的8080
端口映射到主机的8000
端口:
docker run -p 8000:8080 my-web-service
这个命令的参数-p 8000:8080
表示将容器内的8080
端口映射到主机的8000
端口。最后一个参数my-web-service
是指定要运行的Docker镜像。
如果容器内运行的服务需要暴露多个端口,可以通过多次添加-p
参数进行映射。例如,假设在容器内运行的服务需要同时监听8080
和8081
两个端口,我们可以使用下面的命令将这两个端口映射到主机上的不同端口:
docker run -p 8000:8080 -p 8001:8081 my-web-service
这个命令的参数-p 8000:8080
表示将容器内的8080
端口映射到主机的8000
端口,参数-p 8001:8081
表示将容器内的8081
端口映射到主机的8001
端口。
默认情况下,Docker容器映射的端口是绑定到主机的所有网卡接口上。如果要指定映射到某个特定的IP地址上,可以通过-p
参数的格式:
docker run -p IP:HOST_PORT:CONTAINER_PORT my-web-service
其中,IP
是指要映射的本地IP地址,HOST_PORT
是主机上的端口号,CONTAINER_PORT
是容器内服务实际监听的端口号。
与TCP端口不同,UDP端口需要使用-p
参数的格式进行映射。例如,可以通过下面的命令将容器内的UDP端口8080
映射到主机的UDP端口8000
:
docker run -p 8000:8080/udp my-udp-service
在某些情况下,如果没有必要将容器内的端口映射到主机的固定端口上,可以使用-P
参数来指定随机端口映射。例如,可以通过下面的命令启动并自动映射服务的端口:
docker run -P my-web-service
在这个命令中,参数-P
表示将容器内的所有端口自动映射到主机上的随机端口。Docker会随机选择一个未被占用的主机端口并将容器内服务的端口映射到它上面。
可以使用docker ps
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"Le paramètre de cette commande
-p 8000:8080
signifie mapper le port 8080
du conteneur au port 8000 de l'hôte. Le dernier paramètre <code>my-web-service
spécifie l'image Docker à exécuter.
-p
plusieurs fois. Par exemple, en supposant que le service exécuté dans le conteneur doit écouter deux ports 8080
et 8081
en même temps, nous pouvons utiliser la commande suivante pour mapper ces deux ports vers différents ports sur l'hôte. Port : 🎜rrreee🎜Le paramètre de cette commande -p 8000:8080
signifie mapper le port 8080
dans le conteneur au 8000
. Paramètres -p 8001:8081
signifie mapper le port 8081
dans le conteneur au port 8001
de l'hôte. . 🎜-p
: 🎜rrreee🎜où, IP
fait référence à l'adresse IP locale à mapper , HOST_PORT
est le numéro de port sur l'hôte et CONTAINER_PORT
est le numéro de port que le service dans le conteneur écoute réellement. 🎜-p
. Par exemple, vous pouvez mapper le port UDP 8080
dans le conteneur au port UDP 8000
de l'hôte via la commande suivante : 🎜rrreee-P
pour spécifier un mappage de port aléatoire . Par exemple, vous pouvez démarrer et mapper automatiquement le port du service via la commande suivante : 🎜rrreee🎜 Dans cette commande, le paramètre -P
signifie mapper automatiquement tous les ports du conteneur à des ports aléatoires sur l'hôte. Docker sélectionnera au hasard un port hôte inoccupé et lui mappera le port du service dans le conteneur. 🎜docker ps
pour afficher les conteneurs en cours d'exécution et leurs ports mappés. Par exemple, vous pouvez utiliser la commande suivante pour répertorier tous les conteneurs en cours d'exécution et leurs ports mappés : 🎜rrreee🎜 Cette commande affichera l'ID, le nom et leur numéro de port mappé de chaque conteneur. 🎜🎜Le mappage du port Docker consiste à créer une interface réseau entre le conteneur et l'hôte pour la transmission de données bidirectionnelle. Lors de la configuration du mappage de ports, vous devez faire attention aux problèmes de sécurité du réseau et aux conflits de ports pour éviter des problèmes inutiles. J'espère que cet article pourra aider les lecteurs à comprendre le mappage des ports et la configuration réseau de Docker. 🎜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!