首页 > 解决方案 > docker暴露的端口无法正常工作

问题描述

我在 RHEL 7.2 上使用 docker 20.10.6,但 docker 和暴露的端口有一个奇怪的问题。我使用以下命令启动了两个不同的容器:

docker run -it --rm -d -p 8080:80 --name web_exposed nginx
docker run -it --rm -d --net=host --name web_native nginx

这是 docker ps 输出

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS                                   NAMES
829fcf79c84e   nginx     "/docker-entrypoint.…"   8 seconds ago    Up 7 seconds                                            web_native
a2a32b1091c6   nginx     "/docker-entrypoint.…"   26 seconds ago   Up 25 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   web_exposed

这是 netstat 输出

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      off (0.00/0/0)
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      off (0.00/0/0)

第一个 web_exposed 无法从任何地方访问,而第二个 web_native 可通过端口 80 从外部设备访问。

我认为这与 iptables 和内部路由/选址​​有关,但不明白如何弄清楚。

你能帮我么?谢谢

标签: dockerroutesnat

解决方案


推荐阅读