Docker 对于 Mac nginx 示例不 运行
Docker for Mac nginx example doesn't run
Mac 10.11.5 在这里。我专门尝试为 Mac 安装 Docker(not Docker Toolbox 或任何其他产品) .我按照他们 Installation page 上的所有说明进行操作,一切都很顺利,直到他们要求您尝试 运行 连接 nginx 服务器(第 3 步。探索应用程序并 运行 例子).
运行 docker run hello-world
工作完美,没有任何问题。我能够看到该图像预期的正确控制台输出。
但是,然后他们会要求您尝试 运行ning 一个 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
,然后我得到 (in Chrome):
知道我哪里出错了吗?我等了 5 分钟只是为了给 nginx/docker 足够的时间来启动,但这并没有改变任何东西。
出于跟踪目的,相关的 GitHub 问题:
更正
图像将 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 上游,无论您拥有什么应用程序。
试试看
curl -XGET `docker-machine ip`:80
我在 Chrome 上 运行 时遇到了同样的问题,但它在 Safari 上工作。
扯了一会儿头发,我发现我的机器连接到代理,这是问题。
我必须停止服务器,删除图像,关闭代理并重新拉取它。
如果你是 运行ning docker 机器,那么在你的终端中 运行 'docker-machine ls' 并获取你的虚拟主机的 ip。不要输入本地主机,而是将虚拟主机的 ip 粘贴到您的互联网浏览器中,它应该可以工作。
Mac 10.11.5 在这里。我专门尝试为 Mac 安装 Docker(not Docker Toolbox 或任何其他产品) .我按照他们 Installation page 上的所有说明进行操作,一切都很顺利,直到他们要求您尝试 运行 连接 nginx 服务器(第 3 步。探索应用程序并 运行 例子).
运行 docker run hello-world
工作完美,没有任何问题。我能够看到该图像预期的正确控制台输出。
但是,然后他们会要求您尝试 运行ning 一个 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
,然后我得到 (in Chrome):
知道我哪里出错了吗?我等了 5 分钟只是为了给 nginx/docker 足够的时间来启动,但这并没有改变任何东西。
出于跟踪目的,相关的 GitHub 问题:
更正
图像将 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 上游,无论您拥有什么应用程序。
试试看
curl -XGET `docker-machine ip`:80
我在 Chrome 上 运行 时遇到了同样的问题,但它在 Safari 上工作。
扯了一会儿头发,我发现我的机器连接到代理,这是问题。 我必须停止服务器,删除图像,关闭代理并重新拉取它。
如果你是 运行ning docker 机器,那么在你的终端中 运行 'docker-machine ls' 并获取你的虚拟主机的 ip。不要输入本地主机,而是将虚拟主机的 ip 粘贴到您的互联网浏览器中,它应该可以工作。