tag run remove images hub example dockers compose docker docker-compose docker-machine

run - Docker Machine: no queda espacio en el dispositivo



docker-compose (6)

Estoy tratando de configurar Docker Machine con Docker Compose.

Escenario 1 (sin Docker Machine)
Si ejecuto docker-compose up -d sin Docker Machine, crea mis 3 contenedores vinculados según lo previsto (nginx + mongodb + nodejs).

Escenario 2 (con Docker Machine)
Luego creo una VM usando Docker Machine y le digo a Docker que hable con esa máquina con eval $(docker-machine env streambacker-dev) .

En este punto, si ssh a mi máquina acoplable y ejecuto df -h , obtengo:

Si luego ejecuto docker-compose up -d , docker-compose up -d error "no queda espacio en el dispositivo" mientras descargo el último contenedor.

"tmpfs" parece estar un poco lleno después de eso:

Marcar la opción --virtualbox-disk-size muestra que el valor predeterminado es 20000 MB, que creo que es lo que podemos ver como "/ dev / sda1" en ambas imágenes. Entonces, ¿por qué los contenedores están llenando "tmpfs" ny qué es exactamente "tmpfs"? ¿Es un directorio de descarga temporal? ¿Cómo puedo crear más espacio para mis contenedores?

¡Gracias!

Para información, estoy usando Docker Machine 0.4.0-rc2 y Docker Compose 1.3.2 .


A. RETIRE IMÁGENES NO USADAS

Con los comandos docker rm o docker rmi puede eliminar las imágenes que no necesita. En realidad, existe una imagen que ayuda en esta tarea (martin / docker-cleanup-volume). La base es comenzar a seleccionar desde su lista de imágenes y contenedores:

docker ps -a -s

B. MODIFICAR EL DESCRIPTOR DE DOCKER JSON

Se menciona en algunos foros. La idea es incrementar el descriptor ubicado en ~ / .docker / machine / machines / default / config.json. El parámetro parece ser DiskSize pero no sé si funciona en otros sistemas operativos (no en Windows).

C. TAMAÑO DE LINUX:

en el sistema operativo Windows, la máquina acoplable o boot2docker es, de hecho, una virtualbox vm, entonces puede seguir el procedimiento para cambiar el tamaño del disco. Tenga cuidado de hacer una copia de seguridad de los archivos. El procedimiento general es hacer un cambio de tamaño en virtualbox y luego usar un utilitario llamado gpartd para modificar el espacio percibido por Linux en sus particiones. Hay algunos enlaces para hacer este procedimiento al que se hace referencia a continuación:

D. RECREA LA DOCKER-MÁQUINA / BOOT2DOCKER

La idea es recrear la máquina acoplable predeterminada. Los siguientes comandos pueden ilustrarlo. Tenga en cuenta que cuando vuelva a crear boot2docker, perderá las imágenes de docker descargadas anteriormente.

docker-machine rm default

docker-machine create --driver virtualbox --virtualbox-disk-size "100100" predeterminado

docker-machine env por defecto

entonces puede ir al cuadro virtual y ver el espacio boot2docker con el comando "df -h"


Como se dijo anteriormente, el tmpfs no tiene nada que ver con --virtualbox-disk-size . Parece que boot2docker monta tmpfs en la memoria, por lo que debe dedicar más memoria a su virtualbox vm. Puede hacerlo especificando el parámetro --virtualbox-memory .

--virtualbox-memory "1024" Size of memory for host in MB [$VIRTUALBOX_MEMORY_SIZE]

Valores predeterminados:

$ docker-machine create --driver virtualbox testA Creating VirtualBox VM... Creating SSH key... Starting VirtualBox VM... Starting VM... $ docker-machine ssh testA ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""/___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ /______ o __/ / / __/ /____/_______/ _ _ ____ _ _ | |__ ___ ___ | |_|___ / __| | ___ ___| | _____ _ __ | ''_ / / _ / / _ /| __| __) / _` |/ _ / / __| |/ / _ / ''__| | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ | |_.__/ /___/ /___/ /__|_____/__,_|/___/ /___|_|/_/___|_| Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015 Docker version 1.8.1, build d12ea79 docker@testA:~$ df -h / Filesystem Size Used Available Use% Mounted on tmpfs 896.6M 112.7M 783.9M 13% /

Con --virtualbox-memory configurado en 8096

$ docker-machine create --driver virtualbox --virtualbox-memory 8096 testB Creating VirtualBox VM... Creating SSH key... Starting VirtualBox VM... Starting VM... $ docker-machine ssh testB ## . ## ## ## == ## ## ## ## ## === /"""""""""""""""""/___/ === ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ / ===- ~~~ /______ o __/ / / __/ /____/_______/ _ _ ____ _ _ | |__ ___ ___ | |_|___ / __| | ___ ___| | _____ _ __ | ''_ / / _ / / _ /| __| __) / _` |/ _ / / __| |/ / _ / ''__| | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ | |_.__/ /___/ /___/ /__|_____/__,_|/___/ /___|_|/_/___|_| Boot2Docker version 1.8.1, build master : 7f12e95 - Thu Aug 13 03:24:56 UTC 2015 Docker version 1.8.1, build d12ea79 docker@testB:~$ df -h / Filesystem Size Used Available Use% Mounted on tmpfs 6.9G 112.4M 6.8G 2% /


En docker osx / pude presionar un botón [ Mover imagen de disco ] y moví con éxito el Docker.qcow2 (presumiblemente conteniendo contenedores / imágenes)

Inicialmente, cuando las máquinas comenzaron, seguía recibiendo un error No queda espacio en el dispositivo, pero se resolvió poco después.


Me encontré con este problema y no pude agregar espacio adicional con la interfaz de usuario de Docker para Mac, instalé Docker con homebrew y ejecuté el siguiente comando al crear mi máquina:

docker-machine create --driver virtualbox --virtualbox-memory "2048" --virtualbox-disk-size "40000" default

esto agrega el doble de espacio para memoria y tamaño de disco a la caja virtual que tenía antes y puede agregar el tamaño de configuración aquí que necesita según lo considere conveniente


Si está utilizando Docker Community Edition:

docker system prune docker volume prune # as suggested by @justin-m-chase since system prune does not clean volumes.

Si está utilizando boot2docker (docker-machine) borre los volúmenes que quedan huérfanos:

docker volume rm $(docker volume ls -qf dangling=true)

Borrar imágenes no utilizadas:

docker rmi $(docker images -q -f "dangling=true")


Tuve el mismo error ( [ERROR] InnoDB: Error number 28 means ''No space left on device'' ) y resuélvelo de esta manera:

1) Elimine los volúmenes huérfanos en Docker, puede usar el comando incorporado de volumen docker. El comando incorporado también elimina cualquier directorio en / var / lib / docker / volume que no sea un volumen, así que asegúrese de no poner nada allí que desee guardar.

Advertencia, tenga mucho cuidado con esto si tiene algunos datos que desea conservar

Limpiar:

$ docker volume rm $(docker volume ls -qf dangling=true)

Comandos adicionales:

Lista de volúmenes colgantes:

$ docker volume ls -qf dangling=true

Listar todos los volúmenes:

$ docker volume ls

2) También considere eliminar todas las imágenes no utilizadas.

Primero, elimine las imágenes <none> (a veces se generan mientras se crea una imagen y si por alguna razón la construcción de la imagen se interrumpió, permanecen allí).

aquí hay un buen script que uso para eliminarlos

docker rmi $(docker images | grep "^<none>" | awk ''{print $3}'')

Luego, si está utilizando Docker Compose para crear imágenes localmente para cada proyecto. Terminará con muchas imágenes generalmente nombradas como su carpeta (por ejemplo, si su carpeta de proyecto llamada Hello, encontrará las imágenes con el nombre Hello_blablabla ). así que también considera eliminar todas estas imágenes

puede editar el script anterior para eliminarlos o eliminarlos manualmente con

docker rmi {image-name}