Docker:将新的 postgres 容器重新连接到现有的数据容器

Docker: Reconnect new postgres container to existing Data container

我有 3 个 docker 个容器。一个 运行 django,另一个 运行 postgres,第三个是 postgres 的数据容器。我正在使用 docker-compose 来 link 它们。

docker-compose.yml

dbdata:
  image: postgres
  container_name: dbdata_container
  volumes:
    - ./data:/var/lib/postgresql/data
  command: true

db:
  image: postgres
  container_name: postgres_container
  ports:
    - "5432:5432"
  volumes_from:
    - dbdata

web:
  build: .
  container_name: django_container
  command: python manage.py runserver 0.0.0.0:8000
  volumes:
    - .:/code
  ports:
    - "8000:8000"
  links:
    - db

我错误地删除了我的 postgres 容器。

如何创建连接到现有数据容器的新 postgres 容器?

我试过了运行:

docker-compose up

失败并出现以下错误:

web_1    | django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known

当我使用 PgMastero 连接到 postgres 时,我只能看到其中的任何表格。

请帮忙

找到解决方法。在这里更新它,以便它可以帮助其他可能遇到同样问题的人。

我认为一旦 postgres 容器被移除,link 就会变得一团糟。

因此,如果我这样做 docker-compose up,docker 无法 link 数据库容器,我想它仍然指向已删除的容器或新容器被赋予不同 link 姓名.

删除所有三个容器并执行 docker-compose up 即可。我不确定这是为什么,可能是 docker-compose 模块中的一些错误。