Docker Toolbox - Localhost无法正常工作

Mar*_*ark 70 windows docker docker-toolbox

所以我使用的是Docker Toolbox,因为我的机器上没有Hyper-V,因为它不是Windows 10专业版.一切似乎工作正常,但当我试图继续我的浏览器0.0.0.0:80它总是返回我:这个网站无法到达

但是当我运行命令时: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

Bre*_*her 132

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应该工作.

  • 额外信息:Docker 工具箱(在 Windows 7、8、8.1 和 10 Home 中使用)实际上只是一个包含在 `docker-machine` cli 中的启动脚本。你可以使用`docker-machine --help`来查看你可以做什么来管理VirtualBox VM(或创建更多)。 (2认同)

小智 47

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

在VirtualBox中:

  1. 单击相应的计算机(可能是标记为"默认"的计算机)
  2. 设置
  3. 网络>适配器1>高级>端口转发
  4. 单击"+"以添加新规则
  5. 设置主机端口8080和访客端口8080; 一定要将Host IP和Guest IP留空

运行命令:

docker run -p 8080:8080 ${image_id}
Run Code Online (Sandbox Code Playgroud)


nit*_*nti 33

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

  1. 检查您的docker IP默认值

$ docker-machine ip default

192.168.99.100

  1. 转到Oracle虚拟机以设置端口转发.确保网络设置为NAT,并添加端口转发.主机IP:127.0.0.1,访客IP:192.168.99.100,端口全部设置为80, 如下所示

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

问题是nginx IP可以在docker虚拟机中访问,因此我们需要端口转发设置才能直接在主机的浏览器中访问它

  • 当`HOST:CONTAINER` 端口不同时,我需要一个案例,例如`docker run --detach --publish 8081:80 --name webserver nginx`。发现在这种情况下我只需要转发`HOST`端口,即在VirtualBox设置`Host IP=127.0.0.1`中;`主机端口=8081`;`访客IP=192.168.99.100`; `Guest Port=8081`,而不是我之前假设的 `80`。看起来在我的带有 Docker Toolbox 的 Windows 7 机器上,Docker 从容器端口 `80` 转发到 `192.168.99:8081`,我从 `192.168.99:8081` 转发到 `localhost:8081`,因为 `192.168.99:8081` ` 在网络浏览器中不显示任何内容。 (2认同)

Bab*_*med 5

您可以localhost按照以下说明使用“ 192.168.99.100”代替:

步骤#01:

docker-machine ip default
Run Code Online (Sandbox Code Playgroud)

您将看到默认IP

步骤#02:

docker-machine stop default
Run Code Online (Sandbox Code Playgroud)

步骤#03:

  1. 打开VirtualBox Manager(从Windows中的启动程序中搜索VirtualBox Manager
  2. 选择您的Docker Machine VirtualBox映像(例如:默认)
  3. 打开设置->网络->高级->端口转发
  4. 添加您的应用名称,所需的主机端口和您的访客端口 i.e, app name : nginx, host: 127.0.0.1, host port: 80, guest port: 80

步骤#04: 现在您可以通过执行以下操作来启动Docker Machine:

docker-machine start default
Run Code Online (Sandbox Code Playgroud)

然后只需启动您的Docker容器,您就可以通过localhost访问它。

在这里查看详细信息。