gpt4 book ai didi

macos - 无法在 OSX 的 80 端口访问 docker 容器

转载 作者:IT老高 更新时间:2023-10-28 21:42:16 43 4
gpt4 key购买 nike

在我目前的工作中,我们有使用 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 createdocker-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) 连接localhost 80端口失败:连接被拒绝

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

端口确实绑定(bind)到 docker

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 的剩余部分通常存在绑定(bind)该端口,因为那是开发人员当时所做的:)

如果您使用的是 dockertoolbox/virtualbox/whatever hypervisor

你将无法通过 localhost 和 docker-machine ip 访问它,所以写 docker-machine ip default和使用http://$ip:80在您的浏览器中

如果这没有帮助

确保你的 nginx 容器确实可以工作,所以连接到容器:docker exec -i -t <containerid> bash

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

关于macos - 无法在 OSX 的 80 端口访问 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39540471/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com