Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 8653|Antwoord: 6

Docker-logs vullen schijven en datamigratie

[Link kopiëren]
Geplaatst op 07-02-2022 10:21:43 | | | |
De collega reageerde dat het systeem niet kon inloggen op de testomgeving, controleerde de monitoring doortastend en ontdekte dat de servicepoort open was, logde in op de server om het gebruik van de harde schijf te controleren en ontdekte dat de map die op een bepaalde schijf was gemonteerd vol was, zoals weergegeven in de onderstaande figuur:



De schijf is voor 100% de schijf die door de docker-applicatie wordt gebruikt, en aanvankelijk wordt vermoed dat het onvermogen om logbestanden te schrijven voorkomt dat de module diensten aan de buitenwereld kan leveren.

CentOS telt elke mapgrootte en zoekt naar grote bestanden
https://www.itsvse.com/thread-9542-1-1.html
Zoek naar grote bestanden en vind ze tenslotte onder de submap /var/lib/docker/containers/Een bepaald json.log bestand neemt 30G in beslag

Reinigen van lopende containerlogs (Symptoombehandeling)

Om de container direct normaal te laten serveren. Tijdelijke oplossing: snel zulke bestanden opschonen, harde schijfruimte vrijmaken, het script is als volgt:

Als de docker-container draait, zul je na het verwijderen van de logs met rm -rf merken dat schijfruimte niet vrijkomt via df -h. De reden is dat op Linux- of Unix-systemen het verwijderen van een bestand via rm -rf of een bestandsbeheerder het loskoppelt van de mapstructuur van het bestandssysteem. Als het bestand wordt geopend (en er is een proces in gebruik), kan het proces het bestand nog steeds lezen en wordt de schijfruimte voortdurend ingenomen. De juiste houding is cat /dev/null > *-json.log, en natuurlijk kun je docker ook opnieuw opstarten nadat je het hebt verwijderd via rm -rf.

Opmerking:Maak een nieuw script aan in de map van de vrije schijf, anders kan het script niet normaal worden aangemaakt


Het instellen van de loggrootte van de Docker-container (Oorzaak)

Stel de maximale loggrootte van een containerservice in en voeg een parameter toe om de loggrootte van de container bij het starten van de container in te stellen, bijvoorbeeld:

max-size=500m, wat betekent dat de bovengrens van de loggrootte van een container 500M is,
max-file=3, wat betekent dat een container drie logs heeft, namelijk id+.json, id+1.json en id+2.json.


Docker is gemigreerd naar een nieuwe schijf

Docker-gerelateerde data staat op de systeemschijf, de systeemschijf is slechts 50G groot en de datadisk is 100G groot, hoe verplaats je de bestaande docker-data naar de datadisk?

Voor docker geïnstalleerd met de CentOS-systeem yum-methode, zou de standaard installatiemap moeten zijn: /var/lib/docker

Docker-versie < v17.05.0

Omdat dockerd het image en containeropslagpad kan specificeren via de parametergrafiek, zoals –graph=/var/lib/docker, hoeven we alleen het configuratiebestand aan te passen om de opstartparameters te specificeren.

Het configuratiebestand van Docker kan de meeste achtergrondprocesparameters instellen, en de opslaglocatie in elk besturingssysteem is inconsistent, in Ubuntu: /etc/default/docker, en in CentOS: /etc/sysconfig/docker.

Docker-versie >= v17.05.0

Omdat Docker de graph-functie officieel heeft afgeschaft in deze release, kun je als je Docker-versie >= v17.05.0 op je machine hebt geïnstalleerd, de standaard installatie- (opslag-)map van Docker niet wijzigen door de graphparameter in het /etc/default/docker-configuratiebestand te specificeren.

Er zijn andere manieren waarop de nieuwe versie van Docker ons doel kan bereiken om de installatiemap (opslag) te wijzigen: door (nieuwe) /etc/docker/daemon.json te wijzigen om de waarde van de data-rootparameter te specificeren.

Docker daemon-directoryconfiguratie:De hyperlink-login is zichtbaar.

Migratievoorbereiding: Stop alle containerapplicaties en stop docker-diensten (systemctl stop docker).


Docker kijkt naar instellingen voor het herstarten van containers en bulk stop containers
https://www.itsvse.com/thread-10130-1-1.html
Maak een nieuwe map aan in /home/software met het volgende commando:

Migreer de map /var/lib/docker naar de map /home/software/docker (het wordt aanbevolen deze te kopiëren en vervolgens het bestand /var/lib/docker te verwijderen zodra het goed is), het commando is als volgt:

Bij het kopiërenZorg ervoor dat je de -a-parameter toevoegt, anders werken sommige containers niet goed!!!!!

Bekijk alle zachte verbindingen en bestandspunten in de huidige map met het volgende commando:


Wijzig het bestand /etc/docker/daemon.json met het volgende commando:



Sla op, start vervolgens de docker-service met het volgende commando:

Start de container, de tests draaien allemaal normaal, en tot slot,Verwijder de map /var/lib/docker



(Einde)




Vorig:Controleer de in- en afsluittijden van het Linux-systeem
Volgend:Filterfabrieken ingebouwd in Spring Cloud Gateway
Geplaatst op 13-02-2022 16:36:29 |
Leer leren。。。。。
 Huisbaas| Geplaatst op 24-02-2022 09:38:26 |
docker Hoe verwijder je een niet-afbeelding
https://www.itsvse.com/thread-10112-1-1.html
 Huisbaas| Geplaatst op 24-02-2022 13:21:48 |
Lijst
beschrijving
CONTAINER ID en naamDe ID en naam van de container
CPU% en MEM %Het percentage van de host-CPU en het geheugen dat de container gebruikt
MEM GEBRUIK / LIMIETHet totale geheugen dat de container gebruikt, en de totale hoeveelheid toegestane geheugen
NET I/ODe hoeveelheid data die een container via zijn netwerkinterface verzendt en ontvangt
BLOCK I/ODe hoeveelheid data die een container leest en schrijft van een blokapparaat op de host
PID'sHet aantal processen of threads dat door de container wordt aangemaakt


 Huisbaas| Geplaatst op 25-03-2022 14:45:13 |
Je kunt de bijbehorende containerapplicatie vinden door de naamwaarde van het bestand /var/lib/docker/containers/xxxx/config.v2.json op te vragen.



Geplaatst op 07-12-2022 14:17:31 |
Docker-logs vullen schijven en datamigratie
 Huisbaas| Geplaatst op 17-04-2023 09:59:49 |
Docker leegt de logs van een container afzonderlijk met het volgende commando:

Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com