在我目前的工作中,我们有使用 docker-compose 制作的开发环境。一个容器是 nginx,它提供到其他容器的路由。一切似乎都很好,对我在 windows 和 osx 上的同事来说都可以。但是在我的系统(osx El Capitan)上,在端口 80 上访问 nginx 容器存在问题。
有来自 docker-compose.yml 的容器设置
nginx:
build: ./dockerbuild/nginx
ports:
- 80:80
links:
- php
volumes_from:
- app
... and more
没有什么特别./dockerbuild/nginx
的,只是我们从任何地方都知道的 nginx 配置。
docker-compose create
当我用and运行所有东西时docker-compose start
。然后docker ps
给我
3b296c1e4775 docker_nginx "nginx -g 'daemon off" About an hour ago Up 47 minutes 0.0.0.0:80->80/tcp, 443/tcp docker_nginx_1
但是当我尝试通过 curl 访问它时,我得到了错误。curl: (7) Failed to connect to localhost port 80: Connection refused
我尝试使用端口 81 运行容器,一切正常。
端口确实绑定到 docker
22:47 $ sudo lsof -i -n -P | grep TCP
...
com.docke 14718 schovi 38u IPv4 0x6e9c93c51ec4b617 0t0 TCP *:80 (LISTEN)
...
osx 中的防火墙已关闭,我没有其他安全措施。