Mac 10.11.5在这里。 我特别试图安装Docker for Mac ( 不是 Docker Toolbox或任何其他产品)。 我按照他们的安装页面上的所有说明,一切都很顺利,直到他们要求你尝试运行一个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问题:
https://github.com/docker/for-mac/issues/393
修正
该图像公开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
开始docker-compose up
– 您可以轻松地添加其他服务,例如tomcat,puma服务器或FPM上游,无论您使用什么应用程序。
试试curl -XGET `docker-machine ip`:80
在Chrome上运行时遇到了同样的问题,但在Safari上运行正常。
过了一会儿拉我的头发,我发现我的机器连接到代理,这是问题。 我必须停止服务器,删除图像,关闭代理,并再次拉。