您
DATAbase_URL所指的
127.0.0.1是回送适配器(更多信息请参见)。这意味着“连接到我自己”。
在同一主机上运行两个应用程序(不使用Docker)时,它们都可以在同一适配器(也称为
localhost)上寻址。
在容器中运行两个应用程序时,它们与以前不在本地主机上。相反,您需要将
web容器指向适配器
db上容器的IP地址
docker0-
docker-compose为您设置。
更改:
DATAbase_URL: postgres://username:pgpassword@127.0.0.1:5432/mydatabase
至
DATAbase_URL: postgres://username:pgpassword@db:5432/mydatabase
多亏了Docker链接,该方法才能起作用:该
web容器具有一个文件(
/etc/hosts),其中的
db条目指向该
db容器所在的IP
。这是系统(在本例中为容器)在尝试解析主机名时首先会看到的位置。



