2017-03-17 57 views
13

所以我使用Docker Toolbox,因为我的机器上没有Hyper-V,因为它不是Windows 10专业版。一切似乎都做工精细,但当我尝试去我的浏览器0.0.0.0:80它总是返回我:这个网站无法达到Docker Toolbox - Localhost not working

但是当我运行命令:docker container ps我得到如下:0.0.0.0:80->80/tcp意味着该地址应该管用。我搜索了stackoverflow和github问题。现在我卡住了。

我错过了什么吗?

谢谢, 马克

编辑:

使用docker-machine ip default回报我192.168.99.100。我运行在端口80.我仍然得到相同的结果,但地址成为容器ID:https://fd677edg12

我在cmd上运行该命令以查找我的ipv4:cmd /k ipconfig /all。将结果与端口一起放回,并返回相同的结果:https://fd677edg12

+0

0.0.0.0不是一个实际的地址,这意味着端口被绑定到所有docker的主机(你的windows计算机)接口。尝试本地主机:80或任何您的计算机的IP地址:80 – fvu

+0

@fvu我仍然得到“本网站无法到达”。我也尝试过'docker-machine default ip - > 192.168.99.100'所以我把它放在地址:'192.168.99.100:80'中,我仍然得到相同的结果。 – Mark

+1

如果您正在重定向 - 这是您的应用程序已损坏。假设码头运行在同一台计算机上,您应该能够http:// localhost:80/ – user2105103

回答

23

Docker Toolbox没有像Docker for Windows那样获得尽可能多的便利,但是您在家庭版中正确使用Docker Toolbox。

在工具箱中,没有任何东西是localhost,默认情况下它将为192.168.99.100,因为它在VirtualBox中运行Linux VM。

所以,如果你运行docker run -p 80:80 nginx

(请注意,我不得不发布端口192.168.99.100监听该端口)

然后去http://192.168.99.100应该工作。

+0

感谢您的回应。除了添加'docker run -p 80:80 -d nginx'之外,我正在遵循你的步骤。我去了这个地址,它将我重定向到'https:// dev /',并且再次表示无法联系到该网站。我还想验证我是否有'hosts'文件(尽管我知道它不是本地主机)。我评论了那里的一切。 – Mark

+0

经过多次尝试,我终于找到了工作。可悲的是,我不太确定问题所在。 – Mark

5

我最初在使用DockerToolBox和OracleVM VirtualBox时访问我的应用程序在localhost:8080时遇到了一些问题。

在VirtualBox中:

  1. 设置
  2. 网络
  3. 适配器1高级端口转发
  4. 您将要添加新规则
  5. 集HOSTPORT 8080 & GuestPort 8080,一定要将HostIP和Guest IP留空

运行命令:

docker run -p 8080:8080 ${image_id} 
+0

由于远程API上的CORS设置,我必须以localhost:8080运行。太棒了,太简单了,谢谢! – phazei

+0

适合我,谢谢 –

5

我在下面的窗口教程码头工人在https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell并卡在了第6步测试时在nginx的Web浏览器。似乎我面临类似的问题,因为我也使用Windows Home并没有Hyper-V。我的解决方法很简单:

  1. 检查搬运工IP默认

$泊坞窗机IP默认

192.168.99.100

  • 转到Oracle虚拟机以设置端口转发。确保网络设置是NAT,并添加端口转发。 主机IP:127.0.0.1,游客IP:192.168.99.100,端口都设置为80 like this

  • 再次尝试您的浏览器,并运行http://localhosthttp://127.0.0.1(可加80端口也)。它应该运行。

  • 事情是,nginx的IP,就是要泊坞窗虚拟机内访问,因此,我们需要的是,为了端口forwading设置,直接访问它在主机的浏览器