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中:

  1. 设置
  2. networking
  3. 适配器1高级端口转发
  4. 你会想添加一个新的规则
  5. 设置HostPort 8080和GuestPort 8080 ,一定要保留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。 我的解决方法很简单:

  1. 检查您的dockerIP默认

$ docker-machine ip默认

192.168.99.100

  1. 转到Oracle虚拟机以设置端口转发。 确保networking设置是NAT,并添加端口转发。 主机IP:127.0.0.1,来宾IP:192.168.99.100,端口全部这样设置为80

  2. 再次尝试到您的浏览器并运行http:// localhost或http://127.0.0.1 (也可以添加端口80)。 它应该运行。

问题是,nginx IP的目的是在Docker虚拟机中访问,所以我们需要这个端口的转移设置,以便直接在主机的浏览器中访问它