Как запустить скрипт в контейнере через docker-compose?

Здравствуйте!

Осваиваю docker-compose. Ищу способ дампа БД из контейнера. Допустим есть docker-compose.yml:
postgres:
  image: postgres:9.5
  volumes_from:
    - postgres-data
  volumes:
    - ./dump:/backup

postgres-data:
  image: busybox
  volumes:
    - /var/lib/postgresql/data

Пока что получилось решить проблему след путем:
Пишу docker ps -a, ищу нужный мне контейнер, и посредством
docker exec _name_ sh -c "cd /var/lib/postgresql/data && tar cf /backup/postgres.tar ."
получаю дамп. Но это не очень красиво, особенно когда запущено много контенеров.

Есть ли другие способы?
Спасибо.
  • Вопрос задан
  • 642 просмотра
Решения вопроса 1
nazarpc
@nazarpc
Open Source enthusiast
Вполне себе рабочий способ. Но нужно понимать, что без остановки postgresql можно легко получить неконсистентные данные таким образом, с который вы ничего не восстановите. Но на самом деле я бы скорее создал отдельный контейнер, который запускался бы с примонтированным postgres-data и ./dump и занимался только резервным копированием.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы