当前位置:首页 > 操作系统 > MacOs

Docker for Mac nginx示例无法运行

Mac 10.11.5在这里.我特意尝试安装Docker for Mac(不是Docker Toolbox或任何其他产品).我按照Installation page上的所有说明进行操作,一切正常,直到他们要求您尝试运行nginx服务器(步骤3.浏览应用程序并运行示例).

运行码头运行hello-world工作得非常好,没有任何问题.我能够看到该图像所需的正确控制台输出.

但是,然后他们会要求您尝试运行nginx实例:

<code>docker run -d -p 80:80 --name webserver nginx
</code>

我跑了这个,没有错.控制台输出是预期的:

<code>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
</code>

那么我运行了docker ps:

<code>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
</code>

到现在为止还挺好.但后来我打开我的浏览器并将其指向http:// localhost我得到(在Chrome中):

我出错的任何想法?我等了5分钟才给nginx / docker充足的时间来启动,但这并没有改变任何东西.

出于跟踪目的,相关的GitHub问题:

https://github.com/docker/for-mac/issues/393

解决方法:

修正

该图像将HTTP暴露为httpd端口https://github.com/nginxinc/docker-nginx/blob/11fc019b2be3ad51ba5d097b1857a099c4056213/mainline/jessie/Dockerfile#L25

所以使用-p 80:80应该可行并且对我有用:

<code>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" "-"
</code>

所以很可能你要么在主机上运行一个httpd容器,所以端口不能绑定(应该在开始时可见),或者你可能遇到localhost问题 – 127.0.0.1有效吗?那你可能有ipv6的问题
或者更好地使用docker-compose.yml文件

<code>version: '2'
services:
  webserver:
    image: nginx
    ports:
      - '80:80'
</code>

并且使用docker-compose来启动它 – 您可以轻松地添加其他服务,例如tomcat,puma服务器或FPM上游,无论您有什么应用程序.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐