Я намагаюся створити резервну копію / відновити базу даних PostgreSQL, як це пояснено на веб-сайті Docker, але дані не відновлюються.
Обсяги, використовувані зображеннями бази даних:
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
а CMD є:
CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"]
Я створюю контейнер БД за допомогою цієї команди:
docker run -it --name "$DB_CONTAINER_NAME" -d "$DB_IMAGE_NAME"
Потім я підключаю інший контейнер, щоб вставити деякі дані вручну:
docker run -it --rm --link "$DB_CONTAINER_NAME":db "$DB_IMAGE_NAME" sh -c 'exec bash'
psql -d test -h $DB_PORT_5432_TCP_ADDR
# insert some data in the db
<CTRL-D>
<CTRL-D>
Потім створюється архів дьогтю:
$ sudo docker run --volumes-from "$DB_CONTAINER_NAME" --rm -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /etc/postgresql /var/log/postgresql /var/lib/postgresql
Тепер я виймаю контейнер, який використовується для db, і створюю ще один, з тим самим ім'ям, і намагаюся відновити введені раніше дані:
$ sudo docker run --volumes-from "$DB_CONTAINER_NAME" --rm -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar
Але таблиці порожні, чому дані не відновлені належним чином?