我的docker容器没有在Docker for Windows(使用Hyper-V的Native)上的localhost(0.0.0.0)上启动

sga*_*dev 8 nginx docker

我正在关注如何启动nginx docker容器的Digital Ocean教程(目前在第4步).目前这是他们的输出:

$ docker run --name docker-nginx -p 80:80 -d nginx
d3ccb73a91985651ec61231bca9f9c716f0dec807e354a29eeef2144f883a01c

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                         NAMES
b91f3ce26553        nginx               "nginx -g 'daemon off"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp, 443/tcp   docker-nginx
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,这是我的输出(注意到容器的不同IP):

C:\>docker run --name docker-nginx -p 80:80 -d nginx
d3ccb73a91985651ec61231bca9f9c716f0dec807e354a29eeef2144f883a01c

C:\>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                           NAMES
d3ccb73a9198        nginx               "nginx -g 'daemon off"   14 hours ago        Up 2 seconds        10.0.75.2:80->80/tcp, 443/tcp   docker-nginx
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我怎样才能获得与Digital Ocean相同的结果?(让服务器在localhost上启动)


编辑:我正在使用Docker for windows(最近发布),显然使用Hyper-V运行本机.我的输出docker-machine ls是这样的:

C:\>docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

C:\>
Run Code Online (Sandbox Code Playgroud)

Ali*_*ani 11

但是当我运行它时,这是我的输出(注意到容器的不同IP)

由于这是一台Windows机器,我假设您正在使用 Docker工具箱适用于Windows的Docker.10.0.75.2是IP的boot2docker 虚拟机.

如果您使用的是Windows或Mac OS,则需要某种形式的虚拟化才能运行Docker.您刚看到的IP是该轻量级虚拟机的IP.

我怎样才能获得与Digital Ocean相同的结果?(让服务器在localhost上启动)

使用Linux发行版!您还可以Docker For Windows设置中启用Expose容器端口localhost:

在此输入图像描述


Hem*_*ela 8

尽管您在本地计算机中创建了容器.这些实际上是在不同的机器(虚拟机)上运行

首先,检查您的docker机器(虚拟机)的IP是多少

$docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default   *        virtualbox   Running   tcp://192.168.99.100  
Run Code Online (Sandbox Code Playgroud)

然后运行curl命令(或打开浏览器)以查看nginx容器内Web服务器上的默认网站

curl http://192.168.99.100:80
Run Code Online (Sandbox Code Playgroud)

  • @AliDehghani感谢您的澄清. (2认同)