tag quiet name different create compile windows docker docker-machine docker-toolbox

quiet - Cambiar la ubicación de la máquina Docker-Windows



docker dockerfile (10)

Estoy usando docker toolbox en Windows 7 para ejecutar docker. (Docker versión 1.9.1)

Como resultado, la máquina acopladora crea su VM en C: / Users / username / .docker / machine / machines / default. Y a medida que confirmo las imágenes, el tamaño de VM en esta ubicación se hincha. Desde su Windows, no puede permitirse el lujo de espacio en la unidad C.

¿Hay alguna forma de cambiar la ubicación de la máquina predeterminada?


Cree un archivo llamado c: / programdata / docker / config / daemon.json con el contenido a continuación donde e: / images es la ubicación donde desea almacenar todas sus imágenes, etc. reinicie docker.

{"graph": "e: / images"}

Funcionó como por arte de magia

Referencia: https://forums.docker.com/t/where-are-images-stored/9794/11


Desde 2015, ahora existe (junio de 2017) Hyper-V , que le permite definir dónde desea sus archivos VHDX :

Consulte Docker para Windows 1.13.0, 2017-01-19 (estable) :

El archivo VHDX que contiene imágenes y volúmenes no montados en el host se puede mover (usando la pestaña "avanzada" en la IU)

Eso modificará el %APPDATA%/Docker/settings.json con una línea:

"MobyVhdPathOverride":"C://Users//Public//Documents//Hyper-V//New folder//MobyLinuxVM.vhdx"

Ver este hilo para más .

Respuesta original

Actualmente 2015, la máquina acoplable fuerza el uso de %USERPROFILE% :
Ver libmachine/mcnutils/utils.go#L17-L25

Como se comentó en el número 499 :

Mientras tanto, ¿cómo podrán los usuarios especificar dónde se almacenan los archivos .docker/machine/* ?

puedes especificar --storage-path en la línea de comando o usar la variable de entorno MACHINE_STORAGE_PATH .

(Puede verlo implementado en PR 1941 )

Joost Den Boer señala en los comentarios

Acabo de probar '' -s <path> '' en una Mac y parece funcionar bien.
Lo que podría no ser obvio es que la opción de ruta va antes que el comando .
Al ejecutar " docker-machine -s /Volumes/other/location'' create --driver=virtualbox " se creó una nueva imagen de VirtualBox en la otra ubicación.


Encontré que muchas de estas respuestas estaban fuera de los datos, al menos no funcionaban en mi entorno: win10 PRO, docker desktop community 2.0.0.3. Finalmente, resolví este problema por este método:

  1. desinstalar docker

  2. abra el administrador de Hyper-V (presione la tecla WIN y luego ingrese "Hyper")

  3. Cambie las ubicaciones predeterminadas del disco duro virtual en la configuración de Hyper-V (no en la configuración de VM) y confirme

  4. instalar docker

  5. verifique la ubicación de la imagen del disco en las opciones avanzadas de la configuración de la ventana acoplable



Esto es lo que funcionó perfectamente para mí en Windows 7:

  1. Configure la variable de entorno MACHINE_STORAGE_PATH como la raíz de la ubicación que desea usar para las máquinas Docker / VM, caché, etc.
  2. Instalar Docker Toolbox
  3. Ejecute Docker Quickstart Terminal

Docker Toolbox ahora creará todos los archivos en la ubicación señalada por MACHINE_STORAGE_PATH.

ACTUALIZAR:

Tenga en cuenta que crear una nueva máquina virtual con la nueva ruta de almacenamiento no es ideal, ya que los scripts de Docker Quickstart Terminal no parecen funcionar con nada que no se denomine "predeterminado".

Si ya tiene una VM en la unidad C: entonces, lo más simple sería ir a Oracle VirtualBox y eliminar la VM "predeterminada", desinstalar Docker Toolbox, eliminar C: / Users / <username>. docker /, y luego siga los 3 pasos anteriores.

Nota: la desinstalación y reinstalación de Docker Toolbox puede no ser necesaria. Pero no he probado sin él.

Actualizar

Para mover los certificados Docker también, configure la variable DOCKER_CERT_PATH para que apunte a la ruta de la nueva unidad. Gracias a @Nutle por el consejo.


He tenido algunos problemas con cualquiera de las soluciones anteriores, pero esto es lo que funcionó para mí:

  • defina la variable de entorno MACHINE_STORAGE_PATH para que apunte al directorio / carpeta deseado.
  • Instale docker-toolbox de manera normal, si esto funciona para usted, entonces está bien, pero para mí todavía se estaba instalando dentro del directorio .docker .
  • Para solucionar esto, detuve y .docker la máquina predeterminada que se creó junto con la carpeta .docker del directorio de usuarios.
  • start.sh script start.sh y agregó la línea en la parte superior:

p.ej

export MACHINE_STORAGE_PATH=D://Docker

  • Ejecute el acceso directo del terminal Docker Quickstart, que reconstruyó la máquina predeterminada dentro de la carpeta deseada

No pude hacer funcionar el método de variable de entorno MACHINE_STORAGE_PATH. Seguía quejándose de la falta de certificados cuando se inicializaba la máquina. Todavía en Windows 7, así que tengo que usar docker-toolbox.

Eludí el problema al:

  1. Desinstalar Docker Toolbox y reiniciar la máquina
  2. Abra el símbolo del administrador (Buscar símbolo del sistema, mantenga presionada la tecla Mayús, elija "Ejecutar como administrador")
  3. Eliminando .docker de% USERPROFILE%: rmdir / S% USERPROFILE% .docker
  4. Cree una carpeta llamada .docker en otro lugar: mkdir a: /. Docker
  5. mklink / J% USERPROFILE% .docker a: /. docker
  6. Cerrar símbolo del sistema de administrador
  7. Vuelva a instalar Docker Toolbox
  8. Use el enlace Terminal de inicio rápido de Docker para iniciar todo.
  9. Kitematic también se puede abrir ahora (aunque tuve que elegir la opción "Usar caja virtual" en el primer error.

Ponga estos dos comandos cuando ejecute el terminal de inicio rápido de Docker.

Supongo que su nueva ubicación es "D: / docker" y su nuevo nombre de máquina es "docker1"

export MACHINE_STORAGE_PATH=D://docker docker-machine create --driver=virtualbox docker1

Esto debería crear una nueva máquina con el nombre especificado en su nueva ubicación.


Puede mover el directorio .docker a otra unidad y crearle un punto de unión.

Tenga en cuenta que el acceso directo normal no funcionará.

Por ejemplo:

Mueva el directorio .docker de C:/Users/username a D:/

y correr:

C:/Users/username>mklink /j .docker D:/.docker Junction created for .docker <<===>> D:/.docker


Simplemente use la interfaz gráfica de VirtualBox para reubicar el archivo disk.vmdk :

  1. Copie el archivo C:/Users/{myUsername}/.docker/machine/machines/default/disk.vmdk en otra carpeta, diga F:/docker-image/ .
  2. Abra VirtualBox , seleccione VM default y abra Settings .
  3. Abra Storage , seleccione disk.vmdk actual y suéltelo (o elimínelo).
  4. Haga clic en Choose Virtual Hard Disk File... y busque el archivo copiado en F:/docker-image/
  5. Se produce una advertencia: VirtualBox se queja del antiguo UID de VM, luego vaya al menú File , seleccione Virtual Media Manager... y libere o elimine el disk.vmdk
  6. Vuelva a intentarlo 4. Ya está!
  7. Si su entorno lo requiere, realice la reubicación también para boot2docker.iso, Snapshot Folder, Video Capture.