我正在关注如何启动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:
尽管您在本地计算机中创建了容器.这些实际上是在不同的机器(虚拟机)上运行
首先,检查您的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)
| 归档时间: |
|
| 查看次数: |
8677 次 |
| 最近记录: |