Mac上的Docker:无法查看端口

我正在Yosemite上运行boot2docker。 我在创build容器并在boot2docker中使用它们方面没有任何问题。 我也可以通过http连接到在boot2docker的虚拟机上运行的docker守护进程。 但是,当我用Revel创build容器并开始狂热时,我无法从浏览器连接到Revel的端口9000。

我正在采用这种方法: http : //www.medding.me/blog/2014/09/06/setting-up-a-docker-environment-for-golang-development-part-1/

这里是正在运行的Revel服务器:

INFO 2015/05/07 20:19:00 revel.go:329: Loaded module static INFO 2015/05/07 20:19:00 revel.go:329: Loaded module testrunner INFO 2015/05/07 20:19:00 revel.go:206: Initialized Revel v0.12.0 (2015-03-25) for >= go1.3 INFO 2015/05/07 20:19:00 run.go:57: Running revel3 (alexed1/revel3) in dev mode INFO 2015/05/07 20:19:00 harness.go:165: Listening on :9000 

当我用浏览器连接到192.168.59.103:9000时,我得到了ERR_CONNECTION_REFUSED

我已经尝试了几个不同的东西:

  1. dockerfile中有EXPOSE(9000);
  2. VirtualBox客户端已经按照http://odewahn.github.io/docker-jumpstart/boot2docker.html的方向configuration: http : //screencast.com/t/Ki​​RdimWVnwqS 。 我已经尝试使用localhost和127.0.0.1作为主机值。

如您所见,正在运行的容器上不显示端口信息:

EXPOSE 不是用于将端口“暴露”给主机,而是用于互连容器,请参阅文档 。

正如从jm_____中提到的,您必须将容器的端口转发到您的boot2docker主机:

 docker run -p 40001:9000 the/image/name 

然后访问它:

 open http://192.168.59.103:40001 

或者在您尝试使用docker psfind端口。

PS: Dockerfile没有PORT ,但是可以在docker-compose.yml文件中指定它。