使用boot2docker向windows上的主机公开docker容器应用程序端口
到目前为止,我已经:使用boot2docker向windows上的主机公开docker容器应用程序端口,docker,boot2docker,Docker,Boot2docker,到目前为止,我已经: 在WIN7上安装了boot2docker 1.6.0 使用ubuntu:14.01基本映像创建了一个容器 安装并提交了一个应用程序,现在我有了一个新的映像“Demoest_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
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
转到我的应用程序目录并启动应用程序(它是一个在端口1500上运行的web应用程序)。应用程序在容器上成功启动,当我执行netstat
时,我可以在侦听模式下看到它。我想在我的主机WIN7系统上访问此应用程序,但当我尝试http://127.0.0.1:15000
我收到连接被拒绝错误
使用另一个终端,我可以清楚地看到端口映射已就位,但我无法在主机上访问它
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机器,则该端口在VM中公开,而不是在本地Win7机器中公开 将
-p 127.0.0.1:15000:1500
更改为仅15000:1500
,然后尝试在docker机器IP默认值
中给定的IP地址访问端口15000
您不能在端口映射中使用127.0.0.1,因为这只会绑定到本地接口,无法从VM外部访问该接口。后续问题1-在容器启动后,我是否可以公开/映射容器上运行的应用程序端口?2-如何使容器在启动时运行脚本,例如:从repo/共享驱动器复制一些文件,并将其部署到我的应用程序服务器并启动应用程序服务器?请以新问题的形式提问后续问题,而不是在评论中提问。但是1)不,至少不,除非你玩IP表等2)看看DockerFiles中的ENTRYPOINT和CMD指令,为生活在2016年第一季度的人们,而不是
boot2docker IP
我们现在必须使用docker machine ls
来发现IP或docker machine ls | awk'{print$5}'
@pulkitsinghal updated。你可以运行docker机器ip btw。