Kollegaen reagerede, at systemet ikke kunne logge ind i testmiljøet, tjekkede overvågningen grundigt og fandt ud af, at serviceporten var åben, og loggede ind på serveren for at tjekke harddiskforbruget og fandt ud af, at mappen monteret på en bestemt disk var fuld, som vist i figuren nedenfor:
Disken er 100% den disk, der bruges af docker-applikationen, og det mistænkes i starten, at manglende evne til at skrive logfiler forhindrer modulet i at levere tjenester til omverdenen.
Søg efter store filer og find dem til sidst under undermappen /var/lib/docker/containers/En bestemt json.log fil optager 30G。
Rensning af løbende containerlogs (symptombehandling)
For at lade beholderen serveres normalt med det samme. Midlertidig løsning, hurtigt opryd sådanne filer, frigør plads på harddisken, scriptet er som følger:
Hvis docker-containeren kører, vil du efter at have slettet logbøgerne med rm -rf opdage, at diskpladsen ikke frigøres via df -h. Årsagen er, at på Linux- eller Unix-systemer vil sletning af en fil via rm -rf eller en filbehandler afkoble den fra filsystemets mappestruktur. Hvis filen åbnes (og der er en proces i brug), vil processen stadig kunne læse filen, og diskpladsen vil være optaget hele tiden. Den korrekte stilling er cat /dev/null > *-json.log, og selvfølgelig kan du også genstarte docker efter at have fjernet det via rm -rf.
Bemærkning:Opret et nyt script i mappen på den ledige disk, ellers kan scriptet ikke oprettes normalt。
Indstilling af Docker-containerens logstørrelse (rodårsag)
Indsæt den maksimale logstørrelse for en containerservice, og tilføj en parameter til at fastsætte logstørrelsen på containeren, når containeren startes, for eksempel:
max-size=500m, hvilket betyder, at den øvre grænse for logstørrelsen på en container er 500M, max-file=3, hvilket betyder, at en container har tre logs, nemlig id+.json, id+1.json og id+2.json.
Docker migrerede til en ny disk
docker-relaterede data findes på systemdisken, systemdisken er kun 50G stor, og datadisken er 100G stor – hvordan flytter man de eksisterende docker-data til datadisken?
For docker installeret med CentOS-systemet yum-metoden bør standardinstallationsmappen være: /var/lib/docker
Docker-version < v17.05.0
Da dockerd kan specificere billed- og containerlagringsstien gennem parametergrafen, såsom –graph=/var/lib/docker, behøver vi kun at ændre konfigurationsfilen for at angive opstartsparametrene.
Dockers konfigurationsfil kan sætte de fleste af baggrundsprocesparametrene, og lagringsplaceringen i hvert operativsystem er inkonsistent i Ubuntu: /etc/default/docker og i CentOS: /etc/sysconfig/docker.
Docker-version >= v17.05.0
Fordi Docker officielt har afskaffet graffunktionen i denne udgivelse, kan du, hvis du har Docker version >= v17.05.0 installeret på din maskine, ikke ændre standardinstallationsmappen (storage) for Docker ved at angive grafparameteren i konfigurationsfilen /etc/default/docker.
Der er andre måder, hvorpå den nye version af Docker kan opnå vores mål om at ændre installations- (lagrings-) mappen: ved at ændre (ny) /etc/docker/daemon.json for at specificere værdien af data-root-parameteren.
Docker daemon-mappekonfiguration:Hyperlink-login er synlig.
Forberedelse til migration: Stop alle containerapplikationer og stop docker-tjenester (systemctl stop docker).
Opret en ny mappe i /home/software med følgende kommando:
Migrer /var/lib/docker-mappen til /home/software/docker-mappen (det anbefales at kopiere den og derefter slette /var/lib/docker-mappen, når det er i orden), kommandoen er som følger:
Når man kopiererSørg for at tilføje -a-parameteren, ellers vil nogle containere ikke fungere korrekt!!!!!
Se alle bløde forbindelser og filpunkter i den aktuelle mappe med følgende kommando:
Ændr filen /etc/docker/daemon.json med følgende kommando:
Gem, og start derefter docker-tjenesten med følgende kommando:
Start containeren, testene kører alle normalt, og endelig,Slet /var/lib/docker-mappen。
(Slut)
|