Kolega reagoval, že systém sa nemôže prihlásiť do testovacieho prostredia, rozhodne skontroloval monitorovanie a zistil, že servisný port je otvorený, prihlásil sa na server, aby skontroloval využitie pevného disku, a zistil, že adresár pripojený na určitom disku je plný, ako je znázornené na obrázku nižšie:
Disk je 100 % disk, ktorý používa docker aplikácia, a spočiatku sa predpokladá, že nemožnosť zapisovať logové súbory bráni modulu poskytovať služby vonkajšiemu svetu.
Hľadajte veľké súbory a nakoniec ich nájdite v podadresári /var/lib/docker/containers/Určitý json.log súbor zaberá 30G。
Čistenie bežiacich kontajnerových záznamov (liečba príznakov)
Aby nádoba mohla okamžite podávať normálne. Dočasné riešenie: rýchlo vyčistiť takéto súbory, uvoľniť miesto na pevnom disku, skript je nasledovný:
Ak beží docker kontajner, potom po vymazaní logov pomocou rm -rf zistíte, že miesto na disku sa neuvoľní cez df -h. Dôvodom je, že na systémoch Linux alebo Unix vymazanie súboru cez rm -rf alebo správcu súborov ho odpojí od adresárovej štruktúry súborového systému. Ak je súbor otvorený (a proces sa používa), proces bude stále schopný súbor čítať a miesto na disku bude neustále zaberané. Správna póza je cat /dev/null > *-json.log, a samozrejme môžeš tiež reštartovať docker po jeho odstránení cez rm -rf.
Poznámka:Vytvorte nový skript v adresári voľného disku, inak sa skript nedá vytvoriť normálne。
Nastavenie veľkosti logu docker kontajnera (hlavná príčina)
Nastavte maximálnu veľkosť logu služby kontajnera a pridajte parameter na nastavenie veľkosti logu kontajnera pri jeho spustení, napríklad:
max-size=500m, čo znamená, že horná hranica veľkosti logu kontajnera je 500M, max-file=3, čo znamená, že kontajner má tri logy, a to id+.json, id+1.json a id+2.json.
Docker migroval na nový disk
Na systémovom disku existujú dáta súvisiace s dockerom, systémový disk má veľkosť len 50G a dátový disk 100G, ako presunúť existujúce dáta z Dockeru na tento dátový disk?
Pre docker nainštalovaný pomocou metódy yum systému CentOS by mal byť predvolený inštalačný adresár: /var/lib/docker
Docker verzia < v17.05.0
Keďže dockerd môže špecifikovať obrazovú a kontajnerovú cestu úložiska cez graf parametrov, napríklad –graph=/var/lib/docker, stačí upraviť konfiguračný súbor na špecifikáciu počiatočných parametrov.
Konfiguračný súbor Dockeru dokáže nastaviť väčšinu parametrov procesu na pozadí a umiestnenie úložiska v každom operačnom systéme je nekonzistentné, v Ubuntu: /etc/default/docker a v CentOS: /etc/sysconfig/docker.
Docker verzia >= v17.05.0
Keďže Docker oficiálne zrušil funkciu grafu v tomto vydaní, ak máte na svojom počítači nainštalovanú verziu Dockeru >= v17.05.0, nemôžete upraviť predvolený inštalačný (úloživý) adresár Dockeru zadaním parametra grafu v konfiguračnom súbore /etc/default/docker.
Existujú aj iné spôsoby, ako môže nová verzia Dockeru dosiahnuť náš cieľ upraviť inštalačný (úložný) adresár: úpravou (nového) /etc/docker/daemon.json na špecifikáciu hodnoty parametra data-root.
Docker daemon directory configuration:Prihlásenie na hypertextový odkaz je viditeľné.
Príprava na migráciu: Zastaviť všetky kontajnerové aplikácie a zastaviť docker služby (systemctl stop docker).
Vytvorte nový adresár v /home/software pomocou nasledujúceho príkazu:
Migrujte adresár /var/lib/docker do adresára /home/software/docker (odporúča sa ho skopírovať a potom vymazať súbor adresára /var/lib/docker, keď je to v poriadku), príkaz je nasledovný:
Pri kopírovaníNezabudnite pridať parameter -a, inak niektoré kontajnery nebudú správne fungovať!!!!!
Zobraziť všetky mäkké spojenia a súborové body v aktuálnom adresári pomocou nasledujúceho príkazu:
Upravte súbor /etc/docker/daemon.json nasledujúcim príkazom:
Uložiť a potom spustiť docker službu nasledujúcim príkazom:
Spustite kontajner, testy bežia normálne a nakoniec,Vymažte priečinok /var/lib/docker。
(Koniec)
|