Docker “cihazda yer kalmadı” diyor, ancak sistemde yeterli alan var mı?


19

Diğer sistemlerde çalışan bir docker görüntüsü çalıştırmaya çalışıyorum (ve isterseniz dockerhub'dan bile çekebilirsiniz: öyle dougbtv/asterisk) Ancak, genel iş istasyonumda, boş alandan şikayet ediyor (benziyor) liman işçilerinin görüntülerini kaldırıyor.

Çalıştırmaya çalışıyorum ve bunu yaptığımda alanın boş olduğunu belirten bir hata alıyorum. İşte onu çalıştırmaya çalıştığım bir örnek ve alandan şikayet ediyor ..

[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]

Tabii ki, ne kadar alan bulunduğunu kontrol ediyorum ve googling yoluyla bazen bunun inode dışında olduğunuz için olduğunu görüyorum. Bu yüzden ikisine de bakıyorum ve bol miktarda inode olduğunu görebiliyorum.

[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

Ve neler olduğunu biraz görebiliyorsunuz işte benim /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

Ve benzer bir yığın değişim sorusuna sahip birine lvskomutun sonuçlarını sordum , bu da şunu gösterdi:

[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         

Bu bir Fedora 21 sistemi:

[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

Depolama sürücüsü:

[doug@localhost cs]$ sudo docker info|grep Driver:
Storage Driver: devicemapper
Execution Driver: native-0.2

Docker sürümü:

[doug@localhost cs]$ sudo docker -v
Docker version 1.6.0, build 3eac457/1.6.0

Başına bu tavsiye edilen maddeye ben liman işçisi değiştirmeye çalıştı/etc/sysconfig/docker

OPTIONS='--selinux-enabled --storage-opt dm.loopdatasize=500GB --storage-opt dm.loopmetadatasize=10GB'

Ve işe yaramaz olarak yeniden başladı. Bunu sadece tekrar değiştirdim --selinux-enabled(not: Selinux'u devre dışı bıraktım)

Buna ek olarak, makalenin aşağıdaki gibi yedek veri dosyasına bakarak bahsettiğini fark ettim:

[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

Seyrek dosyanın diskin boyutundan büyük olması bir sorun mu var?

Benim lsblkgibi görünüyor:

[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   

Hangi depolama sürücüsünü kullanıyorsunuz? sudo docker info|grep Driver:
mattdm

@Mattdm iyi soru, devicemapperyürütme sürücüsü ile native-0.2. Sorumu bu bilgiler ve docker sürümü ile güncelledim.
dougBTV

çıktı ekleyebilir misiniz lsblk? Bu blog yayını biraz güncel olmasa da yardımcı olabilir.
mattdm

Gittim ve güncelledim ve aynı zamanda işaretçiyi takdir etmek için de kaydettiğim birkaç şeyi kontrol etmek için blog yazısı boyunca yürüdüm @mattdm
dougBTV 13:15

Docker, / var / lib / docker / tmp / 70 .... 'den / var / lib / docker / devicemapper / .... altındaki bir dizine bir tar dosyası çıkarıyor. Bu yolda' devicemapper 'alt dizesi olması bana docker'ın bazı blok depolama cihazını kullanmak için docker'a özel bir blok cihazla eşlediğini düşündürüyor. Bu, muhtemelen lsblk / df ve arkadaşlarını docker komutundan önce veya sonra çalıştırırsanız, eşlenen aygıtı (docker kendinden sonra temizler mi?) Özleyeceğiniz anlamına gelir. Hatalar haşhaş başladıktan ve df / dm araçları ile poking başladıktan sonra muhtemelen ctrl-z ayrıştırma işlemi olacaktır. Bunu yapabilir misin?
Lmwangi

Yanıtlar:


11

Red-Hat tabanlı herhangi bir işletim sistemi kullanıyorsanız, "Devicemapper" in resim başına 10 GB ile sınırlı olduğunu bilmelisiniz ve 10GB'a kadar bir resim çalıştırmaya çalışıyorsanız bu hatayı alabilirsiniz. Bu senin sorunun olabilir. Bunu dene, benim için çalıştı

https://docs.docker.com/engine/reference/commandline/daemon/#storage-driver-options

 sudo systemctl stop docker.service

veya

sudo service docker stop

rm -rvf /var/lib/docker (Take back up of any important data; containers and images will be deleted)

Bu komutu çalıştır

docker daemon --storage-opt dm.basesize=20G

"20G", cihaz haritasının almasını istediğiniz yeni boyuta karşılık gelir ve ardından docker'ı yeniden başlatır

sudo systemctl start docker.service

veya

sudo service docker start

Koşarak ayarlanıp ayarlanmadığını kontrol edin

docker info

Umarım bu işe yarar!


Teşekkür ederim! Bunu daha sonra deneyeceğim. Bu makinede hala var, ancak şimdi oldukça güncel değil, bu yüzden en son Fedora ve Docker'a güncellemem gerekebilir.
Ağustos

Bunu denedim ama liman işçisi daha sonra çalışmayı reddetti. "Sadece redhat kullanma" daha basit bir çözüm olacağını düşünüyorum :)
samthebest

1
sudo dockerd-current --storage-opt dm.basesize=20G... RedHat'ta docker daemon => dockerd.
mikiemorales

1
Komut docker daemon --storage-opt dm.basesize=20Gartık yok gibi görünüyor.
Alex

3

Şans eseri çok büyük bir resim yayınlamaya çalışıyor musunuz? RHEL'in yerel desteği yoktur. Bu nedenle kullanıyorsunuz devicemapper Kullandığınızda devicemapper, konteyner dosya sisteminiz için varsayılan olarak yalnızca 10 GB'a erişebilirsiniz. Kontrol bu yazıyı , o yardımcı olabilir.


3
Bu bağlantı soruyu cevaplayabilse de, cevabın temel kısımlarını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir.
Anthon

0

Çalışmak docker system prunebir süre çalıştı, sonra Tercihler ...> Disk'te "Disk görüntü boyutu" nu artırmaya devam etmek zorunda kaldım, ancak bu sadece tekrar artıncaya kadar yardımcı oldu.

Disk görüntü boyutunu artırmayı reddediyorum ve docker system prunedaha fazla yer talep etmiyordum, ancak çalışma docker volume prunebu kez yardımcı oldu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.