我有一个带有docker-compose.yml
配置的简单Web应用程序,如下所示:
version: "3"
services:
web:
build: .
ports:
- "8000:8000"
db:
image: postgres
ports:
- "5432:5432"
我可以使用
postgres://db:5432
访问Web应用程序容器中的数据库服务,因为两个容器共享网络。我想使用
postgres://db:5432
从主机访问数据库服务。如何将db:5432
主机从容器映射到本地主机上的db:5432
?我尝试将127.0.0.1:5432 db:5432
添加到我的/etc/hosts
文件中,这似乎不起作用。 最佳答案
/etc/hosts
文件只是在不存在或未解析任何DNS服务器的情况下静态解析名称的简单方法。它无法映射端口地址。
参考:https://serverfault.com/questions/54357/can-i-specify-a-port-in-an-entry-in-my-etc-hosts-on-os-x
如果您这样做,它将起作用
127.0.0.1 db
卸下端口,它将起作用。
另外,您可以从主机上直接使用
localhost: 5432
访问Postgres。