Docker工具箱 – 本地主机不工作
所以我使用的是Docker Toolbox,因为我的机器上没有Hyper-V,因为它不是Windows 10专业版。 一切似乎工作正常,但是当我尝试去我的浏览器0.0.0.0:80
它总是返回我:此网站无法达成
但是,当我运行命令: docker container ps
我得到以下内容:0.0.0.0: 0.0.0.0:80->80/tcp
,这意味着这个地址应该工作。 我search了stackoverflow和github问题。 现在我卡住了。
我错过了什么吗?
谢谢,马克
编辑:
使用docker-machine ip default
返回我192.168.99.100
。 我运行在端口80.我仍然得到相同的结果,除了地址成为容器ID: https://fd677edg12
我在cmd上运行该命令来查找我的ipv4: cmd /k ipconfig /all
。 把结果放在端口上,并返回相同的结果: https://fd677edg12
Docker Toolbox并没有像Docker for Windows那么多的便利,但是在家庭版上使用它却是正确的。
在Toolbox中,什么都不是localhost
,默认情况下是192.168.99.100
,因为它在VirtualBox中运行一个Linux VM。
所以如果你运行docker run -p 80:80 nginx
(注意我必须发布一个192.168.99.100
的端口来监听那个端口)
然后去http://192.168.99.100
应该工作。
我最初在使用DockerToolBox和OracleVM VirtualBox的时候,在localhost:8080访问我的应用程序时遇到了一些问题。
在VirtualBox中:
- 设置
- networking
- 适配器1高级端口转发
- 你会想添加一个新的规则
- 设置HostPort
8080
和GuestPort8080
,一定要保留HostIP和Guest IP为空
运行命令:
docker run -p 8080:8080 ${image_id}
我在https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell中关注了docker for windows教程,并在Web浏览器中testingnginx时陷入了第6步。 似乎我面临类似的问题,因为我也使用Windows Home并没有Hyper-V。 我的解决方法很简单:
- 检查您的dockerIP默认
$ docker-machine ip默认
192.168.99.100
-
转到Oracle虚拟机以设置端口转发。 确保networking设置是NAT,并添加端口转发。 主机IP:127.0.0.1,来宾IP:192.168.99.100,端口全部这样设置为80
-
再次尝试到您的浏览器并运行http:// localhost或http://127.0.0.1 (也可以添加端口80)。 它应该运行。
问题是,nginx IP的目的是在Docker虚拟机中访问,所以我们需要这个端口的转移设置,以便直接在主机的浏览器中访问它