无法从远程访问 docker 端口

Posted

技术标签:

【中文标题】无法从远程访问 docker 端口【英文标题】:Can't access docker port from remote 【发布时间】:2019-04-29 21:13:00 【问题描述】:

我在IP地址为47.foo.bar.bazz的机器上启动了一个容器:

docker run -it -p 8888:8888 continuumio/miniconda3

在容器内部,8888port 由烧瓶应用程序打开:

python manage.py runserver -h 0.0.0.0 -p 8888

我可以通过以下方式成功发送http请求到这个端口

curl "http://127.0.0.1:8888/api/v1/vocabulary?callback=zoo

但是当我使用它的IP时它不起作用,我也无法从远程机器访问它

curl "http://47.foo.bar.bazz:8888/api/v1/vocabulary?callback=zoo

这里有一些信息:

netstat -aptn
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name  
tcp6       0      0 :::80                   :::*                    LISTEN      9211/docker-proxy   
tcp6       0      0 :::8888                 :::*                    LISTEN      28811/docker-proxy  
tcp6       0      0 :::443                  :::*                    LISTEN      9194/docker-proxy  

顺便说一句,我可以使用IP地址成功curl 80端口。

谁能指出问题所在?如何从远程机器成功访问它?

【问题讨论】:

你能显示docker ps的输出吗? 【参考方案1】:

我在这里想通了。可能端口被阻塞了。另一方面,我使用 nginx 将我的请求表 80 转发到 8888。

【讨论】:

以上是关于无法从远程访问 docker 端口的主要内容,如果未能解决你的问题,请参考以下文章

无法远程调试应用程序 - 端口无法从外部访问

如何建立远程桌面服务Web访问端口

Docker学习笔记 — 开启Docker远程访问

docker远程连接失败,2375端口也是放开了的

Docker 启动配置和远程访问

Docker开启Remote API 访问 2375端口