J'essaie de sauvegarder / restaurer une base de données PostgreSQL comme expliqué sur le site Web de Docker, mais les données ne sont pas restaurées.
Les volumes utilisés par l'image de la base de données sont:
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
et le CMD est:
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"]
Je crée le conteneur DB avec cette commande:
docker run -it --name "$DB_CONTAINER_NAME" -d "$DB_IMAGE_NAME"
Ensuite, je connecte un autre conteneur pour insérer manuellement des données:
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'archive tar est alors créée:
$ 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
Maintenant, je supprime le conteneur utilisé pour la base de données et en crée un autre, avec le même nom, et j'essaye de restaurer les données insérées avant:
$ sudo docker run --volumes-from "$DB_CONTAINER_NAME" --rm -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar
Mais les tables sont vides, pourquoi les données ne sont-elles pas correctement restaurées?