macos – 无法访问OSX上端口80上的docker容器

前端之家收集整理的这篇文章主要介绍了macos – 无法访问OSX上端口80上的docker容器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在我目前的工作中,我们有使用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运行每一个创建和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:(7)无法连接到localhost端口80:连接被拒绝

我尝试用端口81运行容器,一切正常.

港口真的是绑定到码头

22:47 $sudo lsof -i -n -P | grep TCP
...
com.docke 14718         schovi   38u  IPv4 0x6e9c93c51ec4b617      0t0    TCP *:80 (LISTEN)
...

osx中的防火墙已关闭,我没有其他安全措施.

最佳答案
如果你使用docker-for-mac:

通过localhost访问:80是正确的,但您仍然必须确保没有运行本地apache / Nginx服务.通常来自Boxen / homebrew的剩余物存在绑定该端口,因为那是开发人员当时所做的:)

如果你使用dockertoolBox / virtualBox /无论管理程序

您将无法通过本地主机,通过docker-machine ip访问它,因此请在您的浏览器中使用docker-machine ip default并使用http:// $ip:80

如果这没有帮助

确保你的Nginx容器确实有效,所以连接到容器:docker exec -i -t< containerid>庆典

然后运行ps aux Nginx或者如果安装了telnet,请尝试连接到localhost

原文链接:https://www.f2er.com/nginx/434350.html

猜你在找的Nginx相关文章