使用boot2docker将Docker容器应用程序端口暴露给Windows上的主机
到目前为止我有:
- 在WIN7上安装boot2docker 1.6.0
- 使用ubuntu:14.01基本映像创build一个容器
- 安装了一个应用程序,并承诺,现在我有一个新的形象“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:1500
到15000:1500
,然后尝试在docker-machine ip default
给定的IP地址上访问端口15000
。
您不能在端口映射中使用127.0.0.1,因为这只会绑定到本地接口,而不能从虚拟机外部访问。