在 Docker 中,端口映射是指将容器内的端口映射到宿主机的端口上,这样就可以通过访问宿主机的端口来达到访问容器内服务的目的。端口映射通常是在使用 docker run
命令启动容器时指定的。
端口映射的基本语法是:
-p 宿主机端口:容器内端口
例如,如果你有一个 Web 服务器在容器内运行,并监听在 8080 端口上,你可以使用以下命令将它映射到宿主机的 80 端口:
docker run -p 80:8080 my_image
这将会使得任何对宿主机 80 端口的请求都被转发到容器内的 8080 端口。
如果你希望直接使用容器的服务端口,并且不关心宿主机使用哪个端口(让 Docker 自动选择一个宿主机的空闲端口),可以这样做:
docker run -p 8080:8080 my_image
如果想要绑定到特定的 IP 地址而不是默认的所有接口(0.0.0.0),可以指定 IP 地址:
docker run -p 192.168.1.100:8080:8080 my_image
这会使得只有从 IP 地址为 192.168.1.100 的设备发送的请求才能到达容器内的 8080 端口。
在实际使用中,可能会遇到需要同时映射多个端口的情况,这时可以在 docker run
命令中多次使用 -p
参数:
docker run -p 80:8080 -p 443:443 my_image
这样就可以同时将容器内的 HTTP 和 HTTPS 请求分别映射到宿主机的 80 和 443 端口。
请注意,端口映射仅适用于桥接模式(默认模式)或宿主模式下的容器网络配置。如果你使用的是用户定义的网络或覆盖网络,则可能需要在创建网络时或使用 docker network connect
命令时指定端口映射规则。