backup - imagenes - docker commit contenedor en ejecución
how to backup and restore docker container (2)
Al comprometer un contenedor en ejecución con docker commit
, ¿esto está creando una instantánea consistente del sistema de archivos?
Estoy considerando este enfoque para hacer copias de seguridad de los contenedores. Solo tendría que hacer docker commit <container> <container>:<date>
en " docker commit <container> <container>:<date>
para docker commit <container> <container>:<date>
e insertarlo en un registro local.
La copia de seguridad sería incremental, ya que la confirmación solo crearía una nueva capa.
También la gran cantidad de capas dañará el rendimiento del contenedor drásticamente? ¿Hay alguna manera de eliminar capas intermedias en un momento posterior?
Editar
Por consistente quiero decir que cada aplicación que está diseñada para sobrevivir a una pérdida de potencia debería ser capaz de recuperarse de estas instantáneas. Básicamente esto significa que ningún archivo debe cambiar después de que se inicia la instantánea.
Mientras tanto, descubrí que Docker admite múltiples controladores de almacenamiento (aufs, devicemapper, btrfs) ahora. Lamentablemente, apenas hay documentación sobre las diferencias entre ellos y las opciones que respaldan.
Creo que la coherencia es lo que tú defines que sea.
En términos de aplanamiento y las desventajas de apilar demasiadas capas AUFS, consulte: https://github.com/dotcloud/docker/issues/332
docker flatten está vinculado allí.
Estoy en una situación similar. Estoy pensando en no usar un contenedor de volumen de datos dedicado en lugar de comprometerme regularmente para tener algún tipo de copia de seguridad incremental. Además de la copia de seguridad incremental, el gran beneficio es para un enfoque de desarrollo de equipo. Como recién llegado, simplemente puede hacer que docker pull
una imagen de la base de datos que ya contiene todos los datos que necesita para ejecutar, depurar y desarrollar.
Entonces, lo que hago ahora es hacer una pausa antes de confirmar:
docker pause happy_feynman; docker commit happy_feynman odev:`date +%s`
Por lo que puedo decir, no tengo problemas en este momento. Pero esta es una máquina en desarrollo, así que no tengo experiencia en servidores de carga pesada.