Docker:宿主机端口与容器端口怎么对应
区分容器内监听、EXPOSE 与端口发布,用限定回环地址的示例解释访问范围和排查顺序。
以 Docker Engine 的 bridge 网络为例;host 网络、编排平台和不同网关模式需另查对应文档。命令会创建一个示例容器,先确认 8080 未被需要保留的服务使用。
1. 读懂发布参数
127.0.0.1 是宿主机绑定地址,8080 是宿主机端口,80 是容器目标端口。此示例只希望从本机访问,浏览器打开 http://127.0.0.1:8080/。镜像标签可能更新,生产部署应采用自己的固定版本策略。
docker run --rm --name portcyou-demo -p 127.0.0.1:8080:80 nginx:stable-alpine2. 分别检查发布与应用
在另一终端检查映射、容器状态和日志。EXPOSE 是镜像元数据,并不等于已用 -p 发布;-p 也不会替应用创建监听。应用只绑定容器内回环地址时,发布入口可能无法到达它。
docker port portcyou-demo
docker ps --filter name=portcyou-demo
docker logs --tail 30 portcyou-demo3. 验证访问边界并正常停止示例
省略宿主机地址的发布通常会扩大访问范围。Docker 官方还记录了旧于 28.0.0 的版本中回环发布可能被同二层网络访问的情况,应保持版本更新并验证网络规则。测试完成后停止示例容器;--rm 会在退出后移除它,不应在其中保存重要数据。
docker stop portcyou-demo来源与核验
资料核对日期: