Meslektaşım, sistemin test ortamına giriş yapamadığını belirtti, izlemeyi kesin bir şekilde kontrol etti ve servis portunun açık olduğunu gördü, sabit disk kullanımını kontrol etmek için sunucuya giriş yaptı ve aşağıdaki şekilde gösterildiği gibi belirli bir diske monte edilen dizinin dolu olduğunu gördü:
Disk, docker uygulamasının kullandığı diskin %100'üdür ve başlangıçta, log dosyaları yazamamanın modülün dış dünyaya hizmet sağlamasını engellediği şüphelenilmektedir.
Büyük dosyalar arayın ve sonunda /var/lib/docker/containers/ alt dizininde bulunBelirli bir json.log dosyası 30G kaplıyor。
Koşan Konteyner Kütüklerinin Temizlenmesi (Semptom Tedavisi)
Kabın hemen normal servis yapmasını sağlamak için. Geçici çözüm, bu tür dosyaları hızlıca temizleyin, sabit disk alanı boşaltın, betik şu şekildedir:
Docker konteyneri çalışıyorsa, rm -rf ile logları sildikten sonra df -h ile disk alanının boşalmadığını göreceksiniz. Bunun nedeni, Linux veya Unix sistemlerinde, rm -rf veya bir dosya yöneticisi üzerinden bir dosyayı silmek, dosya sisteminin dizin yapısından bağlantısını koparmasıdır. Dosya açılırsa (ve bir işlem kullanılıyorsa), süreç dosyayı okumaya devam eder ve disk alanı sürekli kaplanır. Doğru poz cat /dev/null > *-json.log ve tabii ki docker'ı rm -rf ile kaldırdıktan sonra yeniden başlatabilirsiniz.
Açıklama:Boş diskin dizininde yeni bir betik oluşturun, aksi takdirde script normal şekilde oluşturulamaz。
Docker Konteyner Günlük Boyutunun Ayarlanması (Kök Sebep)
Bir konteyner hizmetinin maksimum log boyutunu ayarlayın ve konteyneri başlatırken bir parametre ekleyin, örneğin:
max-size=500m, yani bir konteynerin log boyutunun üst sınırı 500M'dir, max-file=3, yani bir konteynerin üç logu olduğu anlamına gelir: id+.json, id+1.json ve id+2.json.
Docker yeni bir diske taşındı
Docker ile ilgili veri sistem diskinde mevcut, sistem diski sadece 50G boyutunda ve veri diski 100G boyutunda, mevcut docker verisi veri diskine nasıl taşınır?
CentOS system yum yöntemiyle kurulan docker için varsayılan kurulum dizini: /var/lib/docker olmalı
Docker versiyonu < v17.05.0
Dockerd, parametre grafiği üzerinden imaj ve konteyner depolama yolunu belirleyebildiği için, örneğin –graph=/var/lib/docker, yapılandırma dosyasını sadece başlatma parametrelerini belirtmek için değiştirebiliriz.
Docker'ın yapılandırma dosyası, arka plan işlem parametrelerinin çoğunu ayarlayabilir ve her işletim sistemindeki depolama konumu tutarsızdır; Ubuntu'da: /etc/default/docker ve CentOS'ta: /etc/sysconfig/docker.
Docker version >= v17.05.0
Docker bu sürümde grafik özelliğini resmen kaldırdığı için, eğer makinenizde Docker >= v17.05.0 yüklüyse, /etc/default/docker yapılandırma dosyasında grafik parametresini belirterek Docker'ın varsayılan kurulum (depolama) dizinini değiştiremezsiniz.
Docker'ın yeni sürümünün kurulum (depolama) dizinini değiştirme hedefimize ulaşmasının başka yolları da var: (yeni) /etc/docker/daemon.json ile veri kökü parametresinin değerini belirtmek.
Docker daemon directory configuration:Bağlantı girişi görünür.
Göç hazırlığı: Tüm konteyner uygulamalarını durdur ve docker hizmetlerini durdur (systemctl stop docker).
/home/software'de aşağıdaki komutla yeni bir dizin oluşturun:
/var/lib/docker dizinini /home/software/docker dizinine taşıyın (kopyalamanız ve sorun olduğunda /var/lib/docker dizin dosyasını silmeniz önerilir), komut şöyledir:
Kopyalama sırasında-a parametresini eklediğinizden emin olun, aksi takdirde bazı kaplar düzgün çalışmaz!!!!!
Mevcut dizindeki tüm yumuşak bağlantıları ve dosya noktalarını aşağıdaki komutla görüntüleyin:
/etc/docker/daemon.json dosyasını aşağıdaki komutla değiştirin:
Kaydet, ardından docker hizmetini aşağıdaki komutla başlat:
Konteyneri başlatın, testler normal şekilde çalışıyor ve sonunda,/var/lib/docker klasörünü sil。
(Son)
|