¿Cómo pasar de volumes a directorios locales?

De TechShareRoom wiki
Ir a la navegación Ir a la búsqueda

Si empiezas en docker y has especifícado implícitamente los volumes o no lo has hecho, al final tendrás unos volumes concretos internos.

En este ejemplo con Odoo contamos con estos volumes que hemos averiguado mirando en portainer:


3c70b1e5dc5e06efcf2cd384acad92ff218de4feaeb33c20ce38e164b402a3c0

/var/lib/odoo

odoo-example_web


4dbdd3ae9339b968adc5223aecb3dc7f92c59c620eb0b0d011be94664c7253e3

/var/lib/postgresql/data

odoo-example_db


Así que vamos a ejecutar lo siguiente.

Vamos a crear un backup en un compromido de los mismos.

docker run --rm -v 3c70b1e5dc5e06efcf2cd384acad92ff218de4feaeb33c20ce38e164b402a3c0:/data -v $(pwd):/backup busybox tar czf /backup/odoo-data-backup.tar.gz -C /data .

docker run --rm -v 4dbdd3ae9339b968adc5223aecb3dc7f92c59c620eb0b0d011be94664c7253e3:/data -v $(pwd):/backup busybox tar czf /backup/postgres-data-backup.tar.gz -C /data .

Creamos los directorios locales

mkdir -p ./odoo-web-data ./postgres-data

Borra los contenedores con comando o con portainer.

Y ahora vamos a descomprimirlos en las carpetas que vamos a levantar en el docker-compose.

docker run --rm -v $(pwd)/odoo-web-data:/data -v $(pwd):/backup busybox tar xzf /backup/odoo-data-backup.tar.gz -C /data

docker run --rm -v $(pwd)/postgres-data:/data -v $(pwd):/backup busybox tar xzf /backup/postgres-data-backup.tar.gz -C /data

Usamos una plantilla de docker-compose y levantamos

docker-compose up -d