2015-12-28 42 views
2

我有3个docker容器。一个运行django,另一个运行postgres,第三个是postgres的数据容器。我使用docker-compose来连接它们。Docker:将新的postgres容器重新连接到现有的数据容器

泊坞窗,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的我只能看到它的任何表。

请帮忙

+0

Jahan,除非您删除了本地目录./data,否则您的数据库将保持不变。检查你的db容器是否有权写入该卷。 –

+0

谢谢,我认为它不必对权限做任何事情。我现在将所有三个容器作为同一用户运行,这是根本性的。 @ThiagoKronig –

回答

1

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

我觉得链接越来越乱了一旦postgres容器被删除。

因此,如果我做docker-compose up,码头不能与db容器链接,我认为它仍然指向已删除的容器或新的容器被赋予不同的链接名称。

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

相关问题