5

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

4

4 回答 4

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 容器,所以端口不能被绑定(应该通过 start 可见)或者你可能有一个问题localhost-127.0.0.1有效吗?您可能对ipv6then 或更好地使用 docker-compose.yml 文件有疑问

version: '2'
services:
  webserver:
    image: nginx
    ports:
      - '80:80'

然后开始docker-compose up- 您可以轻松添加其他服务,例如 tomcat、puma 服务器或上游 FPM,无论您可能拥有什么应用程序。

于 2016-08-22T16:09:06.677 回答
1

尝试 curl -XGET `docker-machine ip`:80

于 2016-09-07T21:59:19.130 回答
0

如果您正在运行 docker-machine,则在终端中运行“docker-machine ls”并获取虚拟主机的 ip。不要输入 localhost,而是将虚拟主机的 ip 粘贴到您的 Internet 浏览器中,它应该可以工作。

于 2019-10-28T23:29:19.467 回答
-1

我在 Chrome 上运行时遇到了同样的问题,但它可以在 Safari 上运行。

过了一会儿拉我的头发,我发现我的机器连接到代理,这是问题。我必须停止服务器,删除图像,关闭代理并再次拉取它。

于 2016-11-09T01:53:34.180 回答