¿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?
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!
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:
- Hay un
VOLUME
definido en el Dockerfile de la imagen. - 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:
- 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"
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
-
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
)-
Compruebe sus imágenes usando
sudo docker images
en su nueva máquina acoplable
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