2015-09-04 344 views
0

注意:我是网络noob,因此请解释相应的答案。Mac上的Docker无法访问端口

我在Mac OS上运行boot2docker + VirtualBox。

启动我的码头工人容器是这样的:

docker run -it -p 80:80 -p 28017:28017 mine/envbox bash 

在容器我开始nginx的和蒙戈。然后容器我尝试:

curl localhost:80 // returns content 
curl localhost:28017 // returns content 

所以我知道我的服务是向上和健康的容器内。 我的主机上的容器我运行:

curl http://$(boot2docker ip):80 // returns content 
curl http://$(boot2docker ip):28017 // connection error 

我已经在我的Mac上我的VirtualBox的配置端口转发如下​​:(28017端口应该暴露)

enter image description here

为什么我的主机上无法看到端口28017?

+0

docker port的输出:''28017/tcp - > 0.0.0.0:28017 80/tcp - > 0.0.0.0:80''' – Greg

回答

1

明白了。 mongodb(进程绑定到端口28017)默认情况下具有阻止非本地访问的配置,因此它自然不会在容器外可见。取消注释该配置可解决问题。

至少它迫使我从boot2docker升级到docker工具箱,所以这是件好事。