J'essaie d'exécuter une image de docker qui fonctionne sur d'autres systèmes (et vous pouvez même la retirer de dockerhub, si vous le souhaitez: c'est dougbtv/asterisk
) cependant, sur mon poste de travail général, il se plaint de l'espace libre quand il (ressemble) c'est décompresser les images du docker.
J'essaye de l'exécuter, et quand je le fais, j'obtiens une erreur indiquant que c'est à court d'espace. Voici un exemple de moi essayant de l'exécuter, et il se plaint d'espace.
[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]
Bien sûr, je vérifie la quantité d'espace disponible, et grâce à la recherche sur Google, je trouve que cela se produit parfois parce que vous êtes à court d'inodes. Je regarde donc les deux, et je peux voir qu'il y a aussi beaucoup d'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
Et donc vous pouvez voir un peu ce qui se passe, voici mon /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
Et j'ai également demandé à quelqu'un avec une question d'échange de pile similaire de demander les résultats de la lvs
commande, qui montre:
[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
C'est un système 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
Pilote de stockage:
[doug@localhost cs]$ sudo docker info|grep Driver:
Storage Driver: devicemapper
Execution Driver: native-0.2
Version Docker:
[doug@localhost cs]$ sudo docker -v
Docker version 1.6.0, build 3eac457/1.6.0
Par cet article recommandé, j'ai essayé de changer de docker en/etc/sysconfig/docker
OPTIONS='--selinux-enabled --storage-opt dm.loopdatasize=500GB --storage-opt dm.loopmetadatasize=10GB'
Et redémarré docker, en vain. Je l'ai changé en juste --selinux-enabled
(note: j'ai selinux désactivé)
De plus, j'ai remarqué que l'article mentionnait la recherche du fichier de données de rechange, qui ressemble à:
[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
Est-ce un problème que le fichier clairsemé soit plus grand que la taille du disque?
Mes lsblk
looks:
[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
avec le pilote d'exécutionnative-0.2
. J'ai mis à jour ma question avec cette information et la version docker.lsblk
? Ce billet de blog peut aider, bien qu'il soit un peu obsolète.Réponses:
Si vous utilisez un système d'exploitation basé sur Red-Hat, vous devez savoir que "Devicemapper" est limité à 10 Go par image, et si vous essayez d'exécuter une image pouvant atteindre 10 Go, vous pouvez obtenir cette erreur. C'est peut-être votre problème. Essayez ça, ça a marché pour moi
https://docs.docker.com/engine/reference/commandline/daemon/#storage-driver-options
ou
Exécutez cette commande
Où "20G" fait référence à la nouvelle taille que vous souhaitez que le devicemapper prenne, puis redémarrez docker
ou
Vérifiez s'il est défini en exécutant
J'espère que cela fonctionne!
la source
sudo dockerd-current --storage-opt dm.basesize=20G
... c'est le docker daemon => dockerd dans RedHat.docker daemon --storage-opt dm.basesize=20G
ne semble plus exister.Êtes-vous par hasard en train de lancer une très grande image? RHEL n'a pas de support natif aufs. Vous utilisez donc
devicemapper
Lorsque vous utilisezdevicemapper
, vous n'avez accès qu'à 10 Go par défaut pour votre système de fichiers conteneur. Consultez cet article , il peut être utile.la source
La course à pied a
docker system prune
fonctionné pendant un certain temps, puis j'ai dû continuer à augmenter la "Taille de l'image du disque" dans les Préférences ...> Disque, mais cela n'a aidé que jusqu'à ce que je l'augmente à nouveau.Je refuse de continuer à augmenter la taille de l'image disque et
docker system prune
ne réclamais plus d'espace, mais la coursedocker volume prune
a aidé cette fois.la source