¿Hacer una copia de seguridad de un contenedor Docker en ejecución?


¿Es posible hacer una copia de seguridad de un contenedor Docker en ejecución? ¿Es el comando export adecuado para hacer eso?

Author: errordeveloper, 2013-03-29

3 answers

Publicado por un amigo en comentarios

Hola Slava, siento que tu pregunta haya sido cerrada. Para que conste, Slava está hablando de docker.io, un tiempo de ejecución para contenedores linux. Sí, docker export es un enfoque adecuado. Generará un tarball de todo el estado del sistema de archivos del contenedor, y lo volcará en stdout. So

docker export $CONTAINER_ID > $CONTAINER_ID-backup.tar

Producirá un tarball utilizable. Puede volver a importar el archivo comprimido con

docker import - slava/$CONTAINER_ID-backup < $CONTAINER_ID-backup.tar

Tenga en cuenta que los metadatos originales (por ejemplo, id de la imagen original) serán perder. Esto debería corregirse en futuras versiones de docker. - Solomon Hykes Apr 2 ' 13 at 6:35

Agregando aquí para que uno pueda encontrar en el resumen que la pregunta fue respondida. Gracias Solomon!

 35
Author: JuliandotNut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-27 14:00:17

export tiene algunas limitaciones: no exportará el volumen de datos .

Aquí está el volumen de datos significa:

  1. Hay un VOLUME definido en el Dockerfile de la imagen.
  2. El contenedor se inicia 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 volumes-from ' para engancharlo contenedor, para 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"

 7
Author: semicircle21,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-26 07:04:52

También puede 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. Compruebe sus imágenes usando sudo docker images en su nueva máquina acoplable

 -1
Author: Awan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-19 14:40:54