Estoy tratando de ejecutar una imagen de docker que funcione en otros sistemas (e incluso puede extraerla de dockerhub, si lo desea: es dougbtv/asterisk
), sin embargo, en mi estación de trabajo general, se queja de espacio libre cuando se ve (parece) está desmarcando las imágenes de la ventana acoplable.
Intento ejecutarlo y, cuando lo hago, aparece un error que indica que no tiene espacio. Aquí hay un ejemplo de mí tratando de ejecutarlo, y quejándose del espacio ...
[root@localhost docker]# docker run -i -t dougbtv/asterisk /bin/bash
Timestamp: 2015-05-13 07:50:58.128736228 -0400 EDT
Code: System error
Message: [/usr/bin/tar -xf /var/lib/docker/tmp/70c178005ccd9cc5373faa8ff0ff9c7c7a4cf0284bd9f65bbbcc2c0d96e8565d410879741/_tmp.tar -C /var/lib/docker/devicemapper/mnt/70c178005ccd9cc5373faa8ff0ff9c7c7a4cf0284bd9f65bbbcc2c0d96e8565d/rootfs/tmp .] failed: /usr/bin/tar: ./asterisk/utils/astdb2sqlite3: Wrote only 512 of 10240 bytes
/usr/bin/tar: ./asterisk/utils/conf2ael.c: Cannot write: No space left on device
/usr/bin/tar: ./asterisk/utils/astcanary: Cannot write: No space left on device
/usr/bin/tar: ./asterisk/utils/.astcanary.o.d: Cannot write: No space left on device
/usr/bin/tar: ./asterisk/utils/check_expr.c: Cannot write: No space left on device
[... another few hundred similar lines]
Por supuesto, verifico cuánto espacio hay disponible, y al buscar en Google encuentro que a veces esto sucede porque no tienes inodos. Así que miro a ambos, y puedo ver que también hay muchos inodes.
[root@localhost docker]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 20M 3.9G 1% /dev/shm
tmpfs 3.9G 1.2M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/fedora-root 36G 9.4G 25G 28% /
tmpfs 3.9G 5.2M 3.9G 1% /tmp
/dev/sda3 477M 164M 285M 37% /boot
/dev/mapper/fedora-home 18G 7.7G 8.9G 47% /home
tmpfs 793M 40K 793M 1% /run/user/1000
/dev/sdb1 489G 225G 265G 46% /mnt/extradoze
[root@localhost docker]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 1012063 585 1011478 1% /dev
tmpfs 1015038 97 1014941 1% /dev/shm
tmpfs 1015038 771 1014267 1% /run
tmpfs 1015038 15 1015023 1% /sys/fs/cgroup
/dev/mapper/fedora-root 2392064 165351 2226713 7% /
tmpfs 1015038 141 1014897 1% /tmp
/dev/sda3 128016 429 127587 1% /boot
/dev/mapper/fedora-home 1166880 145777 1021103 13% /home
tmpfs 1015038 39 1014999 1% /run/user/1000
/dev/sdb1 277252836 168000 277084836 1% /mnt/extradoze
Y así puedes ver un poco lo que está pasando aquí está mi /etc/fstab
[root@localhost docker]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Mar 17 20:11:16 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/fedora-root / ext4 defaults 1 1
UUID=2e2535da-907a-44ec-93d8-1baa73fb6696 /boot ext4 defaults 1 2
/dev/mapper/fedora-home /home ext4 defaults 1 2
/dev/mapper/fedora-swap swap swap defaults 0 0
Y también le pregunté a alguien con una pregunta de intercambio de pila similar los resultados del lvs
comando, que muestra:
[root@localhost docker]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home fedora -wi-ao---- 17.79g
root fedora -wi-ao---- 36.45g
swap fedora -wi-ao---- 7.77g
Es un sistema Fedora 21:
[root@localhost docker]# cat /etc/redhat-release
Fedora release 21 (Twenty One)
[root@localhost docker]# uname -a
Linux localhost.localdomain 3.19.5-200.fc21.x86_64 #1 SMP Mon Apr 20 19:51:56 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Controlador de almacenamiento:
[doug@localhost cs]$ sudo docker info|grep Driver:
Storage Driver: devicemapper
Execution Driver: native-0.2
Versión de Docker:
[doug@localhost cs]$ sudo docker -v
Docker version 1.6.0, build 3eac457/1.6.0
Según este artículo recomendado , intenté cambiar Docker a/etc/sysconfig/docker
OPTIONS='--selinux-enabled --storage-opt dm.loopdatasize=500GB --storage-opt dm.loopmetadatasize=10GB'
Y reinició la ventana acoplable, en vano. Lo he cambiado nuevamente a solo --selinux-enabled
(nota: tengo selinux deshabilitado)
Además, noté que el artículo mencionaba mirar el archivo de datos de repuesto, que se ve así:
[root@localhost doug]# ls -alhs /var/lib/docker/devicemapper/devicemapper
total 3.4G
4.0K drwx------ 2 root root 4.0K Mar 20 13:37 .
4.0K drwx------ 5 root root 4.0K Mar 20 13:39 ..
3.4G -rw------- 1 root root 100G May 13 14:33 data
9.7M -rw------- 1 root root 2.0G May 13 14:33 metadata
¿Es un problema que el archivo disperso sea más grande que el tamaño del disco?
Mi se lsblk
parece a:
[root@localhost doug]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 100M 0 part
├─sda2 8:2 0 49.2G 0 part
├─sda3 8:3 0 500M 0 part /boot
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 62G 0 part
├─fedora-swap 253:0 0 7.8G 0 lvm [SWAP]
├─fedora-root 253:1 0 36.5G 0 lvm /
└─fedora-home 253:2 0 17.8G 0 lvm /home
sdb 8:16 0 1.8T 0 disk
└─sdb1 8:17 0 489G 0 part /mnt/extradoze
loop0 7:0 0 100G 0 loop
└─docker-253:1-1051064-pool 253:3 0 100G 0 dm
loop1 7:1 0 2G 0 loop
└─docker-253:1-1051064-pool 253:3 0 100G 0 dm
sudo docker info|grep Driver:
devicemapper
con el controlador de ejecuciónnative-0.2
. Actualicé mi pregunta con esa información y la versión de Docker.lsblk
? Esta publicación de blog puede ayudar, aunque está un poco desactualizada.Respuestas:
Si está utilizando algún sistema operativo basado en Red-Hat, debe saber que "Devicemapper" está limitado a 10 GB por imagen, y si está tratando de ejecutar una imagen de hasta 10 GB, puede obtener ese error. Ese puede ser tu problema. Intenta esto, funcionó para mí
https://docs.docker.com/engine/reference/commandline/daemon/#storage-driver-options
o
Ejecute este comando
Donde "20G" se refiere al nuevo tamaño que desea que tome el mapeador de dispositivos y luego reinicie la ventana acoplable
o
Compruebe si se establece ejecutando
¡Espero que esto funcione!
fuente
sudo dockerd-current --storage-opt dm.basesize=20G
... eso es docker daemon => dockerd en RedHat.docker daemon --storage-opt dm.basesize=20G
ya no parece existir.¿Por casualidad estás tratando de ejecutar una imagen muy grande? RHEL no tiene soporte nativo de aufs. Entonces usas
devicemapper
Cuando usasdevicemapper
, solo tienes acceso a 10GB por defecto para tu sistema de archivos contenedor. Consulte este artículo , puede ser de ayuda.fuente
La ejecución
docker system prune
funcionó durante un tiempo, luego tuve que seguir aumentando el "Tamaño de imagen de disco" en Preferencias ...> Disco, pero eso solo ayudó hasta que lo volví a aumentar.Me niego a seguir aumentando el tamaño de la imagen del disco y
docker system prune
no reclamaba más espacio, pero la ejecucióndocker volume prune
ha ayudado esta vez.fuente