我正在做一些开发工作,并编写了一个脚本将当前的主机/ nginx服务器/ nginx设置转换为主机/ docker / nginx服务器/ docker / nginx设置,以便使目录等在它们之间保持相同。
问题是,我在docker容器上公开的所有端口只能在主机上访问,而不能从主机网络上的任何其他计算机访问。
当从诸如192.168.0.3之类的机器上输入192.168.0.2时,它只是说响应时间太长,但是从192.168.0.2输入192.168.0.2会弹出欢迎进入nginx页面的信息?有趣的是我在端口80的en0上进行了wireshark分析,实际上有一些数据包通过
请参阅数据包检查的粘贴框: 局域网到docker:https://pastebin.com/4qR2d1GV 托管到Docker:https://pastebin.com/Wbng9nDB
我尝试使用docker run -p 80:80 nginx/nginx
和docker run -p 192.168.0.2:80:80 nginx/nginx
和docker run -p 127.0.0.1:80:80 nginx/nginx
,但这似乎无法解决任何问题。
从192.168.0.3连接到192.168.0.2时,应该看到欢迎使用nginx。
这是在我的开发环境中,该环境是osx 10.13.5系统。
当我将其推送到ubuntu 16.04服务器时,它可以与可从www访问的容器化nginx一起正常工作,当我在没有docker的主机上运行ngnix时,我也可以从网络上的外部计算机进行连接
答案 0 :(得分:0)
您的描述有些混乱,端口行中的127.0.0.1仅会将其绑定到localhost-您将无法从另一台计算机访问docker。删除IP地址,您应该可以从本地主机外部访问docker。