2015-12-28 44 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模塊中的一些錯誤。

相關問題