tutorial run container linux docker linux-containers

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

  1. 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

  2. sudo docker save google_star/_version_1.10 > my_docker-backup.tgz

  3. restaurarlo usando ( sudo docker load < my_docker-backup.tgz )

  4. 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:

  1. Hay un VOLUME definido en el archivo Docker de la imagen.
  2. 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:

  1. Visita los datos: (en un bash)

docker run -it --volumes-from target_container ubuntu bash

  1. 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"