标签: sles12

Docker 端口似乎无法从外部服务器访问

我在 SUSE Linux Enterprise Server 12 SP1 中遇到了 Docker 的奇怪情况。

我使用 SSH 连接到服务器。首先,我尝试运行一个简单的 nginx 服务器来测试:

docker run -d -p 8081:80 nginx:alpine --name nginxtest
Run Code Online (Sandbox Code Playgroud)

容器启动成功。然后,跑步curl http://localhost:8081就可以了!

<!-- [...] -->
<title>Welcome to nginx!</title>
<!-- [...] -->
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从我的计算机上的浏览器访问它时,http://10.etc.etc.etc:8081请求超时。

但令人惊讶的是,如果我暂时忘记 docker,并直接从服务器使用简单的 HTTP 服务器,例如python3 -m http.server,我会得到:

Serving HTTP on 0.0.0.0 port 8000 ...
Run Code Online (Sandbox Code Playgroud)

当我从计算机上的浏览器访问它时,http://10.etc.etc.etc:8000它就可以工作了!

所以这一定是关于 docker 如何公开其端口的,但这很奇怪,因为它curl http://localhost:8081有效......

我该如何进一步排除故障并解决此问题?

注意:直到昨天我跑步时一切都运行良好systemctl restart wicked(我试图调查另一个不相关的问题)。我也尝试重新启动服务器,但没有帮助。


这是一些可能相关的更多输出......

  • ifconfig docker0
docker0   Link encap:Ethernet  HWaddr 02:49:68:4D:40:9B
          inet addr:172.17.0.1 …
Run Code Online (Sandbox Code Playgroud)

networking sles linux-networking docker sles12

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

docker ×1

linux-networking ×1

networking ×1

sles ×1

sles12 ×1