Cómo mover imágenes de Docker a otra unidad en Windows

Cómo mover imágenes de Docker a otra unidad en Windows

Intento ejecutar lo siguienteguionpero dockerdno se reconoce en mi estación de trabajo.

Mi sistema operativo es Windows 10. Acabo de instalar la última versión de Docker que es 18.09.2.

Es mi primera vez con Docker.

Respuesta1

Esta respuesta es más una adición enLa respuesta de Jean-François Beauchamp:
Puede encontrar documentación completa sobre este archivo de configuración endocumentación de Docker.

Se afirma:

--data-rootes la ruta donde se almacenan los datos persistentes, como imágenes, volúmenes y estado del clúster.

y

--exec-rootes la ruta donde se almacena el estado del contenedor. El valor predeterminado es /var/run/docker. Especifique aquí la ruta de su demonio en ejecución.

Entonces, si desea mover tanto sus contenedores como sus imágenes (y otras cosas), debe configurar ambos parámetros.

También puede crear un enlace simple donde Docker espera que su carpeta redirija al lugar deseado.
se describeaquíy conducir al mismo resultado. Parece "sucio" pero al final parece más estable que la primera solución.


Trabajar con el motor WSL 2 (para Windows Home y Family Edition)

"D:\\Docker\\data-root"valor comosugerido por miguelbloqueará Docker porque tiene que ser una carpeta WSL.
Sin embargo, Docker crea una distribución WSL específica que contiene sus datos de Docker.y puedes moverlo. Esto no requiere modificar los parámetros de Dockerd.

Para mover la distribución WSL de Docker

 wsl --export docker-desktop-data docker-desktop-data.tar
 wsl --unregister docker-desktop-data
 wsl --import docker-desktop-data X:\wslStore\ docker-desktop-data.tar --version 2

El X:\wslStoreparámetro es la ruta donde deseas "montar" tu Distro, algo así comoD:\Docker\data-root

Respuesta2

En Docker v19.03.8 para Windows, agregué el graphparámetro a mi configuración y funcionó para mí, pero aparentemente, este parámetro está en desuso y ahora deberíamos usarlo data-rooten su lugar. El valor predeterminado para data-rootes c:\programdata\docker. Tenga en cuenta que en el archivo de configuración JSON se deben aplicar caracteres de escape a las barras invertidas.

ingrese la descripción de la imagen aquí

Respuesta3

Encuentra otra manera de hacerlo segúnestecorreo.

Para contenedores Unix, la ruta de las imágenes se puede cambiar mediante la interfaz de Docker Desktop, en el formulario de configuración. Pero si utiliza la función de contenedores de Windows, se instala un segundo servicio, el "Docker Engine". Para cambiar la carpeta de imágenes para este servicio, siga los siguientes pasos:

  1. Obtenga la ruta al archivo de configuración. Vaya a Herramientas administrativas->Servicios. Verifique la línea de comando de Docker Demon para ver el servicio "Dock Engine"

ingrese la descripción de la imagen aquí

La línea de comando es algo así como

"C:\Program Files\Docker\Docker\Resources\dockerd.exe" --run-service --service-name docker -G myPc" --config-file C:\ProgramData\DockerDesktop\tmp-d4w\daemon. json

  1. Edite el archivo de configuración daemon.jsony agregue la propiedad raíz de datos. El valor de la propiedad debe apuntar a la ubicación deseada. Debería verse algo como esto. Controlarestepara obtener información sobre la estructura json.
{
  "registry-mirrors": [],
  "insecure-registries": [],
  "debug": true,
  "experimental": false,
  "hosts": [
    "npipe:////./pipe/docker_engine_windows"
  ],
  "data-root":"D:\\Docker\\data-root" 
}

Si es necesario, otorgue permisos para que la cuenta en ejecución acceda a la carpeta.

  1. reiniciar el servicio. Si no arranca, comprueba eventlogposibles errores.

Los datos configurados previamente en c:\ProgramData\Docker se perderán cuando cambie la ubicación de instalación. Es como una nueva instalación en una nueva ubicación. (imágenes, contenedores, etc). Todas las subcarpetas se crearán nuevamente.

Para mantener el mínimo en la unidad del sistema, haga esto en una instalación nueva.

No estoy 100% seguro acerca de esta solución, pero hasta ahora, Docker funciona bien y la ocupación de la unidad del sistema es escasa.

información relacionada