使用boot2docker将Docker容器应用程序端口暴露给Windows上的主机

到目前为止我有:

  1. 在WIN7上安装boot2docker 1.6.0
  2. 使用ubuntu:14.01基本映像创build一个容器
  3. 安装了一个应用程序,并承诺,现在我有一个新的形象“demotest_core”

我遇到的问题是,当我启动我的容器使用这个命令

docker run -it --name demotest --rm -p 127.0.0.1:15000:1500 -v /c/Users/b101/shared:/mnt/shared ubuntu/demotest_core bin/bash 

容器启动后,我cd到我的应用程序的目录,并启动应用程序(它是一个Web应用程序运行在端口1500)应用程序启动成功的容器,我可以看到它在侦听模式,当我做netstat 。 我想访问我的主机WIN7系统上的这个应用程序,但是当我尝试http://127.0.0.1:15000我得到连接拒绝错误。

使用另一个terminal,我可以清楚地看到端口映射到位,但我无法在主机上访问它

 C:\Users\b101>docker port demotest 1500/tcp -> 127.0.0.1:15000 

我也试过这个命令,认为首先我需要公开端口,然后映射它,但它没有工作

 docker run -it --name demotest --expose 1500 --rm -p 127.0.0.1:15000:1500 -v /c/Users/b101/shared:/mnt/shared ubuntu/demotest_core bin/bash 

如果您使用的是docker-machine,那么该端口将暴露在VM中,而不是您本地的Win7机器上。

更改-p 127.0.0.1:15000:150015000:1500 ,然后尝试在docker-machine ip default给定的IP地址上访问端口15000

您不能在端口映射中使用127.0.0.1,因为这只会绑定到本地接口,而不能从虚拟机外部访问。