Kolleeg reageeris, et süsteem ei saa testkeskkonda sisse logida, kontrollis otsustavalt jälgimist ja leidis, et teenuseport oli avatud, ning logis serverisse, et kontrollida kõvaketta kasutust ja leidis, et teatud kettale paigaldatud kataloog oli täis, nagu alloleval joonisel näidatud:
Ketas on 100% sama ketas, mida kasutab dockeri rakendus, ning alguses kahtlustatakse, et logifailide kirjutamise võimetus takistab moodulil teenuseid välismaailmale pakkumast.
Otsi suuri faile ja leia need lõpuks /var/lib/docker/containers/ alamkaustastTeatud json.log fail võtab 30G。
Jooksva konteineri logide puhastamine (sümptomite ravi)
Et anum saaks kohe normaalselt serveerida. Ajutine lahendus: puhasta sellised failid kiiresti, vabasta kõvaketta ruum, skript on järgmine:
Kui dockeri konteiner töötab, siis pärast logide kustutamist rm -rf abil ei vabasta kettaruumi df -h kaudu. Põhjus on selles, et Linuxi või Unixi süsteemides eemaldatakse fail rm -rf või failihalduri kaudu selle ühenduse failisüsteemi kataloogistruktuurist. Kui fail avatakse (ja protsess on kasutusel), saab protsess ikkagi faili lugeda ja kettaruum võtab kogu aeg. Õige poos on cat /dev/null > *-json.log, ja muidugi saad ka dockeri taaskäivitada pärast selle eemaldamist rm -rf kaudu.
Märkus:Loo vaba ketta kataloogis uus skript, vastasel juhul ei saa skripti normaalselt luua。
Dockeri konteineri logi suuruse määramine (algpõhjus)
Sea konteineriteenuse maksimaalne logi suurus ja lisa parameeter, mis määrab konteineri logi suuruse konteineri käivitamisel, näiteks:
max-size=500m, mis tähendab, et konteineri log-suuruse ülemine piir on 500M, max-file=3, mis tähendab, et konteineril on kolm logi: id+.json, id+1.json ja id+2.json.
Docker migreerus uuele kettale
Dockeriga seotud andmed on süsteemikettal olemas, süsteemiketas on vaid 50G suurune ja andmeketas 100G suurune, kuidas liigutada olemasolevaid Dockeri andmeid andmekettale?
Dockeri puhul, mis on paigaldatud CentOS system yum meetodiga, peaks vaikimisi paigalduskataloog olema: /var/lib/docker
Dockeri versioon < v17.05.0
Kuna dockerd saab määrata pildi ja konteineri salvestustee parameetrite graafiku kaudu, näiteks –graph=/var/lib/docker, peame seadistama ainult konfiguratsioonifaili, et määrata käivitusparameetrid.
Dockeri konfiguratsioonifail suudab määrata enamiku taustaprotsessi parameetritest ning iga operatsioonisüsteemi salvestuskoht on ebajärjekindel Ubuntus: /etc/default/docker ja CentOS-is: /etc/sysconfig/docker.
Docker versioon >= v17.05.0
Kuna Docker on selles väljaandes graafifunktsiooni ametlikult aegunud, siis kui sul on Dockeri versioon >= v17.05.0 paigaldatud, ei saa sa Dockeri vaikimisi paigalduskausta (salvestuse) muuta, määrates graafiparameetri /etc/default/docker seadistusfailis.
On ka teisi viise, kuidas uus Dockeri versioon saab saavutada meie eesmärgi muuta paigaldus(salvestus) kataloogi: muutes (uus) /etc/docker/daemon.json, et määrata andmejuure parameetri väärtus.
Docker daemon directory configuration:Hüperlingi sisselogimine on nähtav.
Migratsiooni ettevalmistus: Peata kõik konteinerirakendused ja peata docker-teenused (systemctl stop docker).
Loo uus kataloog /home/software kaudu järgmise käsuga:
Migreeri /var/lib/docker kataloog /home/software/docker kataloogi (soovitatav on see kopeerida ja siis kustutada /var/lib/docker kataloogfail, kui see on korras), käsk on järgmine:
KopeerimiselKindlasti lisa parameeter -a, muidu mõned konteinerid ei tööta korralikult!!!!!
Vaata kõiki pehmeid ühendusi ja failipunkte praeguses kataloogis järgmise käsuga:
Muuda /etc/docker/daemon.json faili järgmise käsuga:
Salvesta, seejärel alusta dokkiteenust järgmise käsuga:
Käivita konteiner, testid töötavad normaalselt ja lõpuks,Kustuta kaust /var/lib/docker。
(Lõpp)
|