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 entornoMACHINE_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:
-
desinstalar docker
-
abra el administrador de Hyper-V (presione la tecla WIN y luego ingrese "Hyper")
-
Cambie las ubicaciones predeterminadas del disco duro virtual en la configuración de Hyper-V (no en la configuración de VM) y confirme
-
instalar docker
-
verifique la ubicación de la imagen del disco en las opciones avanzadas de la configuración de la ventana acoplable
Estas respuestas están desactualizadas, a partir de la última versión. La ubicación es configurable en la interfaz de usuario de Configuración.
Esto es lo que funcionó perfectamente para mí en Windows 7:
- 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.
- Instalar Docker Toolbox
- 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
scriptstart.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:
- Desinstalar Docker Toolbox y reiniciar la máquina
- Abra el símbolo del administrador (Buscar símbolo del sistema, mantenga presionada la tecla Mayús, elija "Ejecutar como administrador")
- Eliminando .docker de% USERPROFILE%: rmdir / S% USERPROFILE% .docker
- Cree una carpeta llamada .docker en otro lugar: mkdir a: /. Docker
- mklink / J% USERPROFILE% .docker a: /. docker
- Cerrar símbolo del sistema de administrador
- Vuelva a instalar Docker Toolbox
- Use el enlace Terminal de inicio rápido de Docker para iniciar todo.
- 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
:
-
Copie el archivo
C:/Users/{myUsername}/.docker/machine/machines/default/disk.vmdk
en otra carpeta, digaF:/docker-image/
. -
Abra
VirtualBox
, seleccione VMdefault
y abraSettings
. -
Abra
Storage
, seleccionedisk.vmdk
actual y suéltelo (o elimínelo). -
Haga clic en
Choose Virtual Hard Disk File...
y busque el archivo copiado enF:/docker-image/
-
Se produce una advertencia: VirtualBox se queja del antiguo UID de VM, luego vaya al menú
File
, seleccioneVirtual Media Manager...
y libere o elimine eldisk.vmdk
-
Vuelva a intentarlo
4.
Ya está! - Si su entorno lo requiere, realice la reubicación también para boot2docker.iso, Snapshot Folder, Video Capture.