Mac上的Docker:无法查看端口

时间:2015-05-07 23:21:36

标签: docker virtualbox boot2docker

我在Yosemite上运行boot2docker。我在创建容器并在boot2docker中使用它们没有问题。我也可以通过http成功连接到boot2docker的vm中运行的docker守护进程。但是,当我使用Revel创建一个容器并启动Revel时,我无法从浏览器连接到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://screencast.com/t/KiRdimWVnwqS符合http://odewahn.github.io/docker-jumpstart/boot2docker.html的指示。我尝试使用localhost和127.0.0.1作为主机值。
  3. 如您所见,正在运行的容器上没有显示端口信息:

1 个答案:

答案 0 :(得分:2)

EXPOSE 用于“暴露”到主机的端口,它用于互连容器,请参阅docs

jm _____ 所述,您必须将容器的端口转发到boot2docker主机:

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

然后使用以下命令访问它:

open http://192.168.59.103:40001

或者您已尝试使用docker ps查找端口。

PS:PORT中没有Dockerfile,但您可以在docker-compose.yml文件中指定此内容。