Docker 映射端口是将容器内部的应用程序端口映射到宿主机上的端口,以便在不同的计算机之间通信。这样做可以让通过宿主机上的端口访问容器内部应用程序。
Docker 提供了两种方式来映射端口:
- 使用命令行参数 -p 或者 –publish 来指定要映射的端口,如下所示:
docker run -p 8080:80 myimage
这个命令会将容器内部的 80 端口映射到宿主机上的 8080 端口。
- 在 Dockerfile 中使用 EXPOSE 指令来声明要映射的端口,然后在运行容器的时候使用 -P 参数来自动映射所有已经声明的端口,如下所示:
# Dockerfile
FROM nginx
EXPOSE 80
# 运行容器
docker run -P myimage
这个命令会将容器内部的 80 端口映射到宿主机上的一个随机端口。如果需要指定具体的宿主机端口,则使用 -p 参数。
无论是哪种方式,都可以使用 docker ps 命令查看正在运行的容器中的端口映射情况。例如:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c557b7eb9c58 myimage "/bin/bash" 2 minutes ago Up 2 minutes 0.0.0.0:8080->80/tcp mycontainer