2

我有 3 个码头集装箱。一个运行 django,另一个运行 postgres,第三个是 postgres 的数据容器。我正在使用 docker-compose 将它们链接起来。

码头工人-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 时,我只能看到其中的任何表。

请帮助

4

1 回答 1

1

找到了解决办法。在这里更新它,这样它可能会帮助其他可能面临同样问题的人。

我认为一旦删除postgres容器,链接就会变得混乱。

因此,如果我这样做docker-compose up,docker 将无法与我认为仍指向已删除容器的 db 容器链接,或者新容器被赋予不同的链接名称。

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

于 2015-12-29T12:39:44.390 回答