Tôi đang cố gắng sao lưu / khôi phục cơ sở dữ liệu PostgreQuery như được giải thích trên trang web Docker, nhưng dữ liệu không được khôi phục.
Các khối lượng được sử dụng bởi hình ảnh cơ sở dữ liệu là:
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
và CMD là:
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"]
Tôi tạo bộ chứa DB bằng lệnh này:
docker run -it --name "$DB_CONTAINER_NAME" -d "$DB_IMAGE_NAME"
Sau đó, tôi kết nối một container khác để chèn một số dữ liệu theo cách thủ công:
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>
Lưu trữ tar sau đó được tạo:
$ 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
Bây giờ tôi loại bỏ bộ chứa được sử dụng cho db và tạo một cái khác, có cùng tên và cố gắng khôi phục dữ liệu được chèn trước đó:
$ sudo docker run --volumes-from "$DB_CONTAINER_NAME" --rm -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar
Nhưng các bảng trống, tại sao dữ liệu không được khôi phục đúng cách?