Estoy tratando de hacer una copia de seguridad de mi volumen como se describe aquí en la documentación de la ventana acoplable: https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes
Estoy ejecutando el comando con la ruta al volumen:
docker run --rm --volumes-from MYCONTAINER -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/docker/volumes/MYCONTAINER_VOLUME... y también probando solo con el nombre de mi volumen
docker run --rm --volumes-from MYCONTAINER -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar MYCONTAINER_VOLUME pero pase lo que pase, aparece un error como: tar: MYCONTAINER_VOLUME: Cannot stat: No such file or directory
Este volumen se creó y vinculó al contenedor con docker-compose y usa un controlador local para el volumen.
Cuando ejecuto docker volume ls obtengo:
DRIVER VOLUME NAME local MYCONTAINER_VOLUME¿Puede alguien decirme qué estoy haciendo mal con esto?
Descubrí cuál era el problema:
La última parte del comando debe ser la ruta del volumen montado en el CONTENEDOR, no la ruta del volumen en el HOST.
Básicamente, la fórmula para este comando debería ser:
docker run --rm --volumes-from MYCONTAINER -v $(pwd):/backup ubuntu tar cvf /backup/MY_BACKUP.tar /PATH/INSIDE/CONTAINER/TO/VOLUME/data ... y esto creará MY_BACKUP.tar en el directorio actual del HOST.
también, asegúrese de DETENER el contenedor antes de archivar el volumen si es algo así como postgres como en mi caso.
Luego, para restaurar el volumen si está usando docker-compose (ya que también tuve problemas con esto porque la documentación no es específica para contenedores/volúmenes preexistentes creados de esta manera)
1) DETENGA el contenedor
2) Asegúrese de que MY_BACKUP.tar esté en el directorio del proyecto raíz del HOST
3) correr
docker run --rm --volumes-from MYCONTAINER -v $(pwd):/backup ubuntu bash -c "cd / && tar xvf /backup/MY_BACKUP.tar4) reiniciar contenedor
Espero que esto ayude a alguien y ciertamente estoy abierto a cualquier idea para simplificar esto.
La documentación asume que su contenedor tiene un volumen asociado a su contenedor.
Significado: su contenedor se inició con un volumen .
Ejemplo:
$ docker run -d \ --name devtest \ --mount source=myvol2,target=/app \ nginx:latestCompruebe al menos si tiene volúmenes creados con:
docker volume ls