Kollegaen reagerte på at systemet ikke kunne logge inn i testmiljøet, sjekket overvåkingen grundig, og fant at tjenesteporten var åpen, og logget inn på serveren for å sjekke harddiskbruken og fant at katalogen montert på en bestemt disk var full, som vist i figuren nedenfor:
Disken er 100 % disken som brukes av docker-applikasjonen, og det antas først at manglende evne til å skrive loggfiler hindrer modulen i å levere tjenester til omverdenen.
Se etter store filer og finn dem til slutt under undermappen /var/lib/docker/containers/En viss json.log fil tar opp 30 GB。
Rengjøring av løpende containerlogger (symptombehandling)
For å la beholderen serveres normalt umiddelbart. Midlertidig løsning, rydd raskt opp i slike filer, frigjør plass på harddisken, skriptet er som følger:
Hvis docker-containeren kjører, vil du etter å ha slettet loggene med rm -rf oppdage at diskplass ikke frigjøres via df -h. Årsaken er at på Linux- eller Unix-systemer vil sletting av en fil via rm -rf eller en filbehandler koble den fra filsystemets mappestruktur. Hvis filen åpnes (og det er en prosess i bruk), vil prosessen fortsatt kunne lese filen, og diskplassen vil være opptatt hele tiden. Den riktige posisjonen er cat /dev/null > *-json.log, og selvfølgelig kan du også starte docker på nytt etter å ha fjernet den via rm -rf.
Bemerkning:Lag et nytt skript i katalogen til den ledige disken, ellers kan ikke skriptet opprettes normalt。
Innstilling av loggstørrelsen på Docker-containeren (rotårsak)
Sett maksimal logstørrelse for en containertjeneste, og legg til en parameter for å sette loggstørrelsen på containeren når containeren startes, for eksempel:
max-size=500m, som betyr at øvre grense for stokkstørrelsen til en container er 500M, max-file=3, som betyr at en container har tre logger, nemlig id+.json, id+1.json og id+2.json.
Docker migrerte til en ny disk
Docker-relaterte data finnes på systemdisken, systemdisken er bare 50G stor, og datadisken er 100G stor, hvordan flytter man de eksisterende docker-dataene til datadisken?
For docker installert med CentOS system yum-metoden, skal standard installasjonsmappe være: /var/lib/docker
Docker-versjon < v17.05.0
Fordi dockerd kan spesifisere bilde- og containerlagringsstien gjennom parametergrafen, som –graph=/var/lib/docker, trenger vi bare å endre konfigurasjonsfilen for å spesifisere oppstartsparametrene.
Dockers konfigurasjonsfil kan sette de fleste bakgrunnsprosessparametrene, og lagringsplasseringen i hvert operativsystem er inkonsistent, i Ubuntu: /etc/default/docker, og i CentOS: /etc/sysconfig/docker.
Docker-versjon >= v17.05.0
Siden Docker offisielt avviklet graffunksjonen i denne utgivelsen, hvis du har Docker versjon >= v17.05.0 installert på maskinen din, kan du ikke endre standard installasjons- (lagrings-) mappen til Docker ved å spesifisere grafparameteren i /etc/default/docker-konfigurasjonsfilen.
Det finnes andre måter den nye versjonen av Docker kan oppnå vårt mål om å endre installasjons- (lagrings-)katalogen på: ved å endre (ny) /etc/docker/daemon.json for å spesifisere verdien til data-root-parameteren.
Docker daemon-katalogkonfigurasjon:Innloggingen med hyperkoblingen er synlig.
Migreringsforberedelse: Stopp alle containerapplikasjoner og stopp docker-tjenester (systemctl stop docker).
Opprett en ny mappe i /home/software med følgende kommando:
Migrer /var/lib/docker-mappen til /home/software/docker-mappen (det anbefales å kopiere den, og deretter slette /var/lib/docker-mappen når det er i orden), kommandoen er som følger:
Ved kopieringHusk å legge til -a-parameteren, ellers vil noen beholdere ikke fungere som de skal.!!!!!
Se alle myke tilkoblinger og filpunkter i den nåværende katalogen med følgende kommando:
Endre filen /etc/docker/daemon.json med følgende kommando:
Lagre, og start deretter docker-tjenesten med følgende kommando:
Start containeren, testene kjører normalt, og til slutt,Slett mappen /var/lib/docker。
(Slutt)
|