Estoy usando Docker Toolbox en OSX.
He creado un contenedor de volumen de datos para almacenar datos persistentes: https://docs.docker.com/userguide/dockervolumes/#creating-and-mounting-a-data-volume-container .
Verifiqué que estos datos están almacenados en la máquina virtual boot2docker (creada por docker-machine) y no en el contenedor, para que persista. Sin embargo, "reinicio de la máquina acoplable" borra estos datos personalizados en la máquina virtual.
No puedo encontrar documentación sobre lo que está sucediendo. Encontré una publicación en el foro que menciona que los datos en / var / lib / docker se conservarán, pero no pude encontrar ningún documento oficial que lo indique y también parece extraño teniendo en cuenta que la guía de almacenamiento persistente anterior no usa esta ruta o incluso menciona que sus datos serán eliminados
¿Se espera esto? De ser así, ¿hay alguna documentación oficial sobre la ruta correcta para almacenar datos persistentes?
Editar: Agregar un ejemplo de falla del senario
$ docker-machine ssh alt
docker@alt:~$ docker run -v /data:/var/lib/mysql --name mydata busybox sh -c "echo 'hello' > /var/lib/mysql/hello"
docker@alt:~$ docker run --rm --volumes-from mydata busybox sh -c "cat /var/lib/mysql/hello"
hello
docker@alt:~$ exit
$ docker-machine restart alt
Starting VM...
$ docker-machine ssh alt
docker@alt:~$ docker run --rm --volumes-from mydata busybox sh -c "cat /var/lib/mysql/hello"
cat: can't open '/var/lib/mysql/hello': No such file or directory
No uso boot2docker, pero si / data se borra al reiniciar, ahí es donde se almacena su volumen (
docker run -v /data:/var/lib/mysql
), por lo que se perderá.Lo que está haciendo también es combinar dos patrones diferentes para manejar la persistencia del volumen. Para obtener persistencia, los contenedores pueden montar volúmenes desde una ubicación específica en el sistema host (que se supone que es persistente), o pueden asociarse con un contenedor de datos y montarse con ellos
--volumes-from
. Parece que el enfoque del sistema de archivos del host no es apropiado para boot2docker, y debe usar el patrón de volumen de datos (solo).Presumiblemente, debería crear su contenedor de datos con
-v /var/lib/mysql
, en lugar de-v /data:/var/lib/mysql
.fuente
Tenga en cuenta que estoy usando docker para mac beta que está usando xhyve vm.
El contenido de / var / lib / boot2docker se conservará entre los reinicios de la máquina. Entonces, si desea que ciertos archivos estén disponibles en su máquina virtual, colóquelos en este directorio.
Si desea que se pueda acceder a ellos en una ubicación diferente para ejecutar contenedores docker, puede agregar lo siguiente a / var / lib / boot2docker / profile:
Si desea agregar otra configuración a los archivos del sistema que persistirá entre los reinicios de VM, como valores adicionales en su archivo de hosts, puede agregar un comando como el siguiente a / var / lib / boot2docker / profile:
Espero eso ayude
fuente