Tenemos dos instancias de postgresql corriendo en contenedores diferentes en nuestro sistema .El nombre del primer contenedor es basededatos-1 y el segundo es basededatos-2 al cual importaremos los datos de basededatos-1.
basededatos-1 posee un conjunto de base de datos con diferentes tipo de contenidos y el contenedor basededatos-2 está completamente vacío.
1- Exportar todos los datos almacenados en el contenedor basededatos-1.
Lo primero que haremos será entrar a la terminal bash del contenedor usando este comando.
1docker exec -it basededatos-1 bash
Luego exportamos todos los datos con el siguiente comando especificando el usuario establecido y el puerto si estamos usando uno diferente al que hay por defecto por ejemplo yo estoy usando el puerto 1458.
1pg_dumpall -U usuario -p 1458 > backup.sql
Esto nos crea un archivo llamado backup.sql con todos los datos guardados en el contenedor basededatos-1 si ejecutamos el comando ls obtendremos algo como esto
1backup.sql etc opt srv 2home proc sys 3bin lib root tmp 4dev media run usr 5docker-entrypoint-initdb.d mnt sbin var
Para terminar con el trabajo en basededatos-1 nos salimos de su terminal bash con el comando
2- Mover el archivo backup.sql para el contenedor basededatos-2
Ahora vamos a copiar el archivo backup.sql que contiene todos los datos exportados de basededatos-1 al contenedor basededatos-2.Para esto usamos los siguientes comandos en la terminal.
Primero copiamos el archivo backup.sql a una ruta en nuestro sistema de archivos, yo por ejemplo lo pondré en mi carpeta de usuario.
1docker cp basededatos-1:/backup.sql /home/raul
Y luego copiamos el mismo archivo para el contenedor basededatos-2.
1docker cp /home/raul/backup.sql basededatos-2:/
Y para finalizar este paso entramos a la terminal de nuestro contenedor basededatos-2 para comprobar que se encuentre el archivo backup.sql ejecutando nuevamente el comando
1docker exec -it basededatos-2 bash
3- Importamos todos los datos en basededatos-2 desde el archivo backup.sql.
Como en basededatos-2 estoy usando el puerto
1psql -U usuario -p 1468 -f backup.sql
Una vez terminado podemos comprobar que todo se realizó con éxito comprobando la lista de base de datos con el siguiente comando.
1psql -U usuario -p 1468 -l
Debe autenticarse
Para poder interactuar con todas las funcionalidades de nuestro sitio web, es necesario que se autentique con su cuenta de usuario