Estoy tratando de hacer una copia de seguridad / restaurar una base de datos PostgreSQL como se explica en el sitio web de Docker, pero los datos no se restauran.
Los volúmenes utilizados por la imagen de la base de datos son:
VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"]
y el CMD es:
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"]
Creo el contenedor DB con este comando:
docker run -it --name "$DB_CONTAINER_NAME" -d "$DB_IMAGE_NAME"
Luego conecto otro contenedor para insertar algunos datos manualmente:
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>
Luego se crea el archivo 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
Ahora elimino el contenedor utilizado para la base de datos y creo otro, con el mismo nombre, e intento restaurar los datos insertados antes:
$ sudo docker run --volumes-from "$DB_CONTAINER_NAME" --rm -v $(pwd):/backup ubuntu tar xvf /backup/backup.tar
Pero las tablas están vacías, ¿por qué los datos no se restauran correctamente?