Mac 10.11.5在这里。我特意尝试安装 Docker for Mac (不 Docker Toolbox或任何其他产品)。我按照Installation page上的所有说明进行操作,一切正常,直到他们要求您尝试运行nginx服务器(步骤3.浏览应用程序并运行示例)。
运行docker run hello-world
工作得非常好,没有任何问题。我能够看到该图像所需的正确控制台输出。
然而,然后他们会要求您尝试运行nginx实例:
docker run -d -p 80:80 --name webserver nginx
我跑了这个,没有错。控制台输出是预期的:
Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx
51f5c6a04d83: Pull complete
a3ed95caeb02: Pull complete
51d229e136d0: Pull complete
bcd41daec8cc: Pull complete
Digest: sha256:0fe6413f3e30fcc5920bc8fa769280975b10b1c26721de956e1428b9e2f29d04
Status: Downloaded newer image for nginx:latest
ae8ee4595f47e7057e527342783d035b224afd17327b057331529e2820fe2b61
然后我跑了docker ps
:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae8ee4595f47 nginx "nginx -g 'daemon off" 12 seconds ago Up 10 seconds 0.0.0.0:80->80/tcp, 443/tcp webserver
到目前为止一切顺利。但随后我打开浏览器并将其指向http://localhost
并获得(在Chrome中):
我出错的任何想法?我等了5分钟才给nginx / docker充足的时间来启动,但这并没有改变任何东西。
出于跟踪目的,相关的GitHub问题:
答案 0 :(得分:5)
<强>校正强>
图像将80公开为httpd端口https://github.com/nginxinc/docker-nginx/blob/11fc019b2be3ad51ba5d097b1857a099c4056213/mainline/jessie/Dockerfile#L25
因此使用-p 80:80
应该有效并且对我有用:
docker run -p 80:80 nginx
172.17.0.1 - - [22/Aug/2016:17:26:32 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36" "-"
所以很可能你要么在主机上运行一个httpd容器,所以端口不能绑定(应该从头开始可见),或者你可能遇到localhost
问题 - 127.0.0.1
是否有效?您可能会遇到ipv6
的问题
或者更好地使用docker-compose.yml文件
version: '2'
services:
webserver:
image: nginx
ports:
- '80:80'
并以docker-compose up
开头 - 您可以轻松添加其他服务,例如tomcat,puma服务器或FPM上游,无论您有什么应用程序。
答案 1 :(得分:1)
尝试
curl -XGET `docker-machine ip`:80
答案 2 :(得分:0)
如果您正在运行docker-machine,请在终端中运行“ docker-machine ls”并获取虚拟主机的IP。不用输入本地主机,而是将虚拟主机的IP粘贴到您的Internet浏览器中,它应该可以工作。
答案 3 :(得分:-1)
我在Chrome上运行时遇到了同样的问题,但它可以在Safari上运行。
过了一会儿拉我的头发,我发现我的机器连接到代理,这是问题。 我必须停止服务器,删除图像,关闭代理并再次拉动它。