gpt4 book ai didi

docker - 如何将链接容器视为 localhost?

转载 作者:IT老高 更新时间:2023-10-28 12:43:17 24 4
gpt4 key购买 nike

我有这两个容器:

api:
image: social-learning
ports:
- "3000:3000"
command: bundle exec rails s -p 3000 -b '0.0.0.0'
volumes:
- ../api:/app
expose:
- "3000"
web:
image: social-learning-frontend
ports:
- "4200:4200"
- "9000:9000"
command: ember serve -p 4200
volumes:
- .:/app
links:
- api
expose:
- "3000"

当我这样做时:

docker exec `docker ps -a | grep 'frontend_web_1' | awk '{print $1 }'` curl http://localhost:3000

我总是被拒绝连接。我可以通过它的 IP 访问另一个容器,但我更喜欢以 localhost 的身份访问。

有可能吗?

最佳答案

这里似乎有些困惑。

您似乎正在尝试登录 Web 容器并使用 localhost 地址访问 api 容器?这是行不通的。

最好的解决方案就是使用您声明的链接;在 Web 容器中,您应该能够执行 curl http://api:3000。这是可行的,因为 Docker 已经为您的 api 容器添加了一个到 /etc/hosts 的条目。

通过 localhost 访问只能从发布容器端口的 Docker 主机工作。我猜你可以通过 Docker 桥从容器内访问 Docker 主机(例如 curl 172.17.42.1:3000),但这似乎毫无意义的复杂和脆弱。

关于docker - 如何将链接容器视为 localhost?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30963142/

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