hub compose docker docker-for-windows docker-desktop

compose - docker mysql windows



Localización de volúmenes de datos en Docker Desktop(Windows) (2)

Estoy intentando aprender la ventana acoplable en este momento y me estoy confundiendo acerca de dónde existen realmente los volúmenes de datos.

Estoy usando Docker Desktop para Windows . (Windows 10)

En los documentos, dicen que la inspección de la ventana acoplable en ejecución en el objeto le dará la fuente: https://docs.docker.com/engine/tutorials/dockervolumes/#locating-a-volume

$ docker inspect web "Mounts": [ { "Name": "fac362...80535", "Source": "/var/lib/docker/volumes/fac362...80535/_data", "Destination": "/webapp", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ]

Sin embargo no veo esto, me sale lo siguiente:

$ docker inspect blog_postgres-data [ { "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/blog_postgres-data/_data", "Name": "blog_postgres-data", "Options": {}, "Scope": "local" } ]

¿Alguien puede ayudarme? Solo quiero saber dónde existe realmente mi volumen de datos, ¿está en mi máquina host? Si es así, ¿cómo puedo obtener el camino a ella?


Cada contenedor tiene su propio sistema de archivos que es independiente del sistema de archivos del host. Si ejecuta su contenedor con el indicador -v, puede montar volúmenes para que el host y el contenedor vean los mismos datos (como en la ventana acoplable ejecutada -v hostFolder: containerFolder).

La primera salida que imprimiste describe tal volumen montado (por lo tanto montajes) donde "/var/lib/docker/volumes/fac362...80535/_data" (host) se monta en "/ webapp" (contenedor).

Supongo que no usó -v, por lo tanto, la carpeta no está montada y solo es accesible en el sistema de archivos contenedor que puede encontrar en "/ var / lib / docker / volume / blog_postgres-data / _data". Estos datos se eliminarán si elimina el contenedor (docker -rm), por lo que podría ser una buena idea montar la carpeta.

En cuanto a la pregunta donde puede acceder a estos datos desde windows. Por lo que sé, la ventana acoplable para ventanas usa el subsistema bash en Windows 10. Intentaría ejecutar bash para windows10 e ir a esa carpeta o averiguar cómo acceder a las carpetas de Linux desde Windows 10. Consulte esta page para obtener una pregunta frecuente sobre El subsistema linux en windows 10.

Actualización: también puede usar el docker cp para copiar archivos entre el host y el contenedor.


Su directorio de volúmenes es /var/lib/docker/volumes/blog_postgres-data/_data , y /var/lib/docker general montado en C:/Users/Public/Documents/Hyper-V/Virtual hard disks , de todos modos puede verificar hacia fuera mirando la configuración de la ventana acoplable.

Puede consultar esta documentación para obtener información sobre cómo compartir unidades con la ventana acoplable en Windows.

Por cierto, Source es la ubicación en el host y Destination es la ubicación dentro del contenedor en la siguiente salida:

"Mounts": [ { "Name": "fac362...80535", "Source": "/var/lib/docker/volumes/fac362...80535/_data", "Destination": "/webapp", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ]

================================================== =========================

Actualizado para responder preguntas en el comentario:

Mi principal curiosidad aquí es que compartir imágenes, etc. es genial, pero ¿cómo comparto mis datos?

En realidad, el volume está diseñado para este propósito (administrar datos en el contenedor de la ventana acoplable), el volumen de datos se conserva en el host FS y se aísla con el ciclo de vida del contenedor / imagen de la ventana acoplable. Puedes compartir tus datos con volumen por:

  • Montar el volumen de la ventana acoplable para alojarlo y reutilizarlo

    docker run -v /path/on/host:/path/inside/container image

    Luego, todos sus datos persistirán en /path/on/host , puede hacer una copia de seguridad, copiarlos en otra máquina y volver a ejecutar su contenedor con el mismo volumen.

  • Crea y monta un contenedor de datos.

    Crear contenedor de datos: docker create -v /dbdata --name dbstore training/postgres /bin/true Ejecute otro contenedor basado en este contenedor usando --volumes-from : docker run -d --volumes-from dbstore --name db1 training/postgres , entonces todos los datos generados por db1 persistirán en el volumen del contenedor dbstore .

Para obtener más información, puede consultar los documentos oficiales de los volúmenes de la ventana acoplable , simplemente hablando, los volumes son solo un directorio en su host con todos los datos de su contenedor, por lo que podría usar cualquier método que haya usado antes para hacer una copia de seguridad / compartir sus datos.

¿Puedo empujar un volumen a docker-hub como hago con las imágenes?

No, la imagen de la ventana acoplable es algo que usted entrega, pero los datos no lo son. Puede hacer una copia de seguridad / persistir / compartir sus datos con cualquier método que desee, pero enviar datos al registro de la ventana acoplable para compartirlos no tiene ningún sentido.

¿Puedo hacer copias de seguridad, etc?

Sí, como se publicó anteriormente :-)