私信  •  关注

Shubham Patel

Shubham Patel 最近创建的主题
Shubham Patel 最近回复了
4 年前
回复了 Shubham Patel 创建的主题 » 将Django docker容器链接到postgres容器

您可以使用两种方法来解决此问题:

一。用户定义的网络

所有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