Docker 웹 사이트에 설명 된대로 PostgreSQL 데이터베이스를 백업 / 복원하려고하는데 데이터가 복원되지 않습니다.
데이터베이스 이미지가 사용하는 볼륨은 다음과 같습니다.
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"]
이 명령으로 DB 컨테이너를 만듭니다.
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>
그런 다음 tar 아카이브가 작성됩니다.
$ 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
그러나 테이블이 비어 있는데 왜 데이터가 올바르게 복원되지 않습니까?