您可以使用两种方法来解决此问题:
一。用户定义的网络
所有Docker主机上都存在默认的网桥网络。如果你这样做了
不指定其他网络,新容器将自动
连接到默认网桥网络。
Link
您可以使用
docker network inspect bridge
.
然后可以使用“来自容器的IP地址”属性。
不建议这样做,因为容器中的更改可能会更改ip
地址。
Docker不支持在
默认网桥网络。如果希望容器能够解析
按容器名称列出的IP地址,应使用用户定义的网络
相反。可以使用遗留docker run--link选项将两个容器链接在一起,但在大多数情况下不建议这样做。
创建网络运行
docker network create --driver bridge django_network
.
然后使用
docker run -it postgres --network=django_network
和
docker run -it cath2019/cathedral_studio:latest --network=django_network
.
现在您可以使用主机名从django应用程序连接到postgres数据库。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'cath_local',
'USER': 'postgres',
'PASSWORD': 'mypass',
'HOST': 'postgres',
'PORT': '5432',
'OPTIONS': {
'client_encoding': 'UTF8',
},
}
}
2。Docker合成
看一看官方文件
Link
停靠一个django应用程序。
version: '3'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db