2015-12-28 3 views
2

У меня есть 3 докерных контейнера. Один запущенный 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 

При подключении к Postgres с помощью PgMastero я мог видеть только все таблицы в ней.

Просьба помочь

+0

Jahan, если вы не удалили свой локальный каталог ./data, ваша база данных будет не повреждена. Проверьте, имеет ли ваш контейнер db разрешение на запись на том. –

+0

спасибо, я думаю, что он не должен ничего делать с разрешениями. Сейчас я запускаю все три контейнера в качестве одного и того же пользователя, что является корневым инфатом. @ThiagoKronig –

ответ

1

Обнаружена работа вокруг. Обновляя его здесь, чтобы он мог помочь другим, кто может столкнуться с такой же проблемой.

Я думаю, что ссылки перепутались, когда один раз postgres контейнер удален.

Так что если я делаю docker-compose up, докер не может связаться с контейнером db, который, я полагаю, все еще указывает на удаленный контейнер или новый контейнер получает другое имя ссылки.

Удаление всех трех контейнеров и выполнение docker-compose up делает трюк. Я не уверен, почему это так, может быть какая-то ошибка в модуле docker-compose.

Смежные вопросы