Colegul a reacționat că sistemul nu se poate conecta la mediul de testare, a verificat hotărât monitorizarea și a constatat că portul de serviciu era deschis, s-a conectat la server pentru a verifica utilizarea hard disk-ului și a constatat că directorul montat pe un anumit disc era plin, așa cum se arată în figura de mai jos:
Discul este 100% discul folosit de aplicația docker, iar inițial se suspectează că incapacitatea de a scrie fișiere de jurnal împiedică modulul să ofere servicii lumii exterioare.
Caută fișiere mari și în final localizează-le sub subdirectorul /var/lib/docker/containers/Un anumit fișier json.log ocupă 30G。
Curățarea, rularea jurnalelor de containere (tratamentul simptomelor)
Pentru a permite recipientului să servească normal imediat. Soluție temporară: curățarea rapidă a acestor fișiere, eliberarea spațiului pe hard disk, scriptul este următorul:
Dacă containerul docker rulează, atunci după ștergerea logurilor folosind rm -rf, vei observa că spațiul pe disc nu este eliberat prin df -h. Motivul este că, pe sistemele Linux sau Unix, ștergerea unui fișier prin rm -rf sau un manager de fișiere îl va deconecta din structura de directore a sistemului de fișiere. Dacă fișierul este deschis (și există un proces în desfășurare), procesul va putea totuși citi fișierul, iar spațiul pe disc va fi ocupat tot timpul. Postura corectă este cat /dev/null > *-json.log, iar bineînțeles poți reporni Docker după ce îl scoți prin rm-rf.
Remarca:Creează un script nou în directorul discului liber, altfel scriptul nu poate fi creat normal。
Setarea dimensiunii jurnalului containerului Docker (cauza rădăcină)
Setați dimensiunea maximă logaritmică a unui serviciu container și adăugați un parametru pentru a seta dimensiunea logaritmică a containerului la pornirea containerului, de exemplu:
Dimensiune maximă=500M, ceea ce înseamnă că limita superioară a dimensiunii buștenii unui container este 500M, max-file=3, ceea ce înseamnă că un container are trei loguri, și anume id+.json, id+1.json și id+2.json.
Docker a migrat pe un disc nou
Datele legate de Docker există pe discul de sistem, discul de sistem are doar 50G, iar discul de date 100G, cum pot muta datele existente din Docker pe discul de date?
Pentru docker instalat folosind metoda CentOS system yum, directorul implicit de instalare ar trebui să fie: /var/lib/docker
Versiunea Docker < v17.05.0
Deoarece dockerd poate specifica imaginea și calea de stocare a containerului prin graful parametrilor, cum ar fi –graph=/var/lib/docker, trebuie doar să modificăm fișierul de configurare pentru a specifica parametrii de pornire.
Fișierul de configurare al Docker poate seta majoritatea parametrilor procesului în fundal, iar locația de stocare în fiecare sistem de operare este inconsistentă, în Ubuntu: /etc/default/docker, și în CentOS: /etc/sysconfig/docker.
Versiunea Docker >= v17.05.0
Deoarece Docker a renunțat oficial la funcția de graf în această versiune, dacă ai versiunea Docker >= v17.05.0 instalată pe mașina ta, nu poți modifica directorul implicit de instalare (stocare) al Docker specificând parametrul grafului în fișierul de configurare /etc/default/docker.
Există și alte moduri prin care noua versiune a Docker poate atinge scopul nostru de a modifica directorul de instalare (stocare): modificând (noul) /etc/docker/daemon.json pentru a specifica valoarea parametrului data-root.
Configurarea directorului daemonilor Docker:Autentificarea cu hyperlink este vizibilă.
Pregătirea pentru migrare: Opriți toate aplicațiile container și opriți serviciile docker (systemctl stop docker).
Creează un nou director în /home/software cu următoarea comandă:
Migrează directorul /var/lib/docker în directorul /home/software/docker (este recomandat să îl copiezi și apoi să ștergi fișierul directorului /var/lib/docker când este în regulă), comanda este următoarea:
Când copieziAsigură-te că adaugi parametrul -a, altfel unele containere nu vor funcționa corect!!!!!
Vizualizați toate conexiunile soft și punctele de fișier din directorul curent cu următoarea comandă:
Modifică fișierul /etc/docker/daemon.json cu următoarea comandă:
Salvează, apoi începe serviciul docker cu următoarea comandă:
Pornește containerul, testele rulează normal și, în final,Șterge folderul /var/lib/docker。
(Sfârșit)
|