linux - run - Copia de seguridad de un contenedor Docker en ejecución?
ubuntu container docker (3)
¿Es posible realizar una copia de seguridad de un contenedor Docker en ejecución? ¿Es el comando de export
adecuado para hacer eso?
Publicado por un amigo en comentarios
Hola Slava, siento que tu pregunta haya sido cerrada. Para el registro, Slava está hablando de docker.io, un tiempo de ejecución para contenedores de Linux. Sí, la docker export
es un enfoque adecuado. Generará un tarball de todo el estado del sistema de archivos contenedor y lo descargará en stdout. Asi que
docker export $CONTAINER_ID > $CONTAINER_ID-backup.tar
rendirá un tarball utilizable. Puede volver a importar el tarball con
docker import - slava/$CONTAINER_ID-backup < $CONTAINER_ID-backup.tar
Tenga en cuenta que los metadatos originales (por ejemplo, identificación de la imagen original) se perderán. Esto debería arreglarse en versiones futuras de Docker. - Solomon Hykes 2 de abril a las 6:35
Agregando aquí para que uno pueda encontrar desde el resumen que la pregunta fue respondida. Gracias Solomon!
también puedes usar guardar y cargar ... aquí está la muestra
sudo docker images
awan@google-dev:~/StarCenter/_docker$ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE google_star/_version_1.10 latest 1067d6689697b2 4 days ago 1.666 GB
sudo docker save google_star/_version_1.10 > my_docker-backup.tgz
restaurarlo usando (
sudo docker load < my_docker-backup.tgz
)verifique sus imágenes con las imágenes de
sudo docker images
en su nueva docker
export
tiene algunas limitaciones: no exportará el volumen de datos .
Aquí el volumen de datos significa:
- Hay un
VOLUME
definido en el archivo Docker de la imagen. - El contenedor comienza con un parámetro como este:
-v /webapp
Más sobre datos: https://docs.docker.com/userguide/dockervolumes/
La forma de manejar esta situación es iniciar un nuevo contenedor con el parámetro '' --volumes-from '' para enganchar ese contenedor, de modo que pueda visitar el volumen de datos.
Ejemplos:
- Visita los datos: (en un bash)
docker run -it --volumes-from target_container ubuntu bash
- Copia de seguridad en el host: (un contenedor postgres)
docker run -it --volumes-from some_postgres -v /host/path:/container/path --rm ubuntu bash -c "tar -cvf /container/path/postgres-backup.tar /var/lib/postgresql/data"