ฉันพยายามสำรอง / กู้คืนฐานข้อมูล 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"]
ฉันสร้างคอนเทนเนอร์ 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
แต่ตารางว่างเปล่าเหตุใดข้อมูลจึงไม่ถูกกู้คืนอย่างถูกต้อง