Nginx 我的docker容器不是';t在Docker for Windows上的本地主机(0.0.0.0)上启动(本机使用Hyper-V)
下面我将介绍如何启动nginx docker容器(目前在步骤4中)。目前这是他们的输出:Nginx 我的docker容器不是';t在Docker for Windows上的本地主机(0.0.0.0)上启动(本机使用Hyper-V),nginx,docker,Nginx,Docker,下面我将介绍如何启动nginx docker容器(目前在步骤4中)。目前这是他们的输出: $ docker run --name docker-nginx -p 80:80 -d nginx d3ccb73a91985651ec61231bca9f9c716f0dec807e354a29eeef2144f883a01c $ docker ps CONTAINER ID IMAGE COMMAND CREATED
$ 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
但当我运行它时,这是我的输出(注意到容器的不同IP):
为什么会发生这种情况?我怎样才能得到与Digital Ocean相同的结果?(正在本地主机上启动服务器)
编辑:我正在使用(最近发布的)它显然使用Hyper-V运行本机。我对
docker machine ls
的输出如下:
C:\>docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
C:\>
但当我运行它时,这是我的输出(注意到
(集装箱)
由于这是一台Windows机器,我假设您正在使用Docker工具箱Docker for Windows10.0.75.2
是boot2docker
虚拟机的IP
如果您使用的是Windows或Mac OS,那么您将需要某种形式的虚拟化
命令运行Docker。你刚才看到的IP就是那个轻量级虚拟机的IP
我怎样才能得到与Digital Ocean相同的结果?(获得
要在本地主机上启动的服务器)
使用Linux发行版!您还可以在设置中的localhost
上启用公开容器端口:
尽管您在本地计算机中创建了容器。它们实际上是在不同的机器(虚拟机)上运行的 首先,检查docker机器(虚拟机)的IP是多少 然后运行
curl
命令(或打开浏览器)查看容器内nginx
web服务器上的默认网站
curl http://192.168.99.100:80
如果您正在windows上使用虚拟机:
docker-machine ip default
当我第一次运行此命令时:
docker run-d-p80:80——命名docker tutorial docker101tutorial
我得到了这个错误:
docker:来自守护进程的错误响应:冲突。容器名称
容器“LONG\u container\u ID”已在使用“/docker tutorial”。
您必须删除(或重命名)该容器才能重用该容器
名字
因此,我尝试使用:docker rm-f LONG\u container\u ID
然后我做了:docker run-d-p3080:80——命名docker tutorial docker101tutorial
注意3080:80而不是80:80。。。如果我从docker桌面运行此选项,我会看到下面的默认选项:
您能告诉我们您的环境吗?窗户?linux?我正在使用docker for windows,它使用hyper-V本机运行,请在question@sgarcia转到Docker Settings>Network并选中
Expose container ports on localhost
,然后重新启动请将此评论作为答案发布,或使用此@Ali编辑您的答案,以便我可以将其标记为正确,因为这修复了它!我正在使用docker for windows,它使用hyper-V运行本机,请查看我对该问题的更新说明。我没有任何docker机器根据docker machine ls
运行,但在docker for windows中,所有共容器都运行良好。没有虚拟化,根据此文档()您应该打开一个浏览器类型http://docker
Docker完全是关于运行Linux容器的(Windows Server 2016案例除外)而且Windows不附带linux。因此Docker for Windows以虚拟化的形式带来了自己的linux。虚拟化仍然存在,但以一种更无缝、更少痛苦的形式。伙计,你救了我的命。
curl http://192.168.99.100:80
docker-machine ip default