Kollega reagoi, ettei järjestelmä pystynyt kirjautumaan testiympäristöön, tarkisti tarkasti valvonnan ja huomasi, että palveluportti oli auki, ja kirjautui palvelimelle tarkistaakseen kiintolevyn käytön ja totesi, että tietylle levylle asennettu hakemisto oli täynnä, kuten alla olevassa kuvassa näkyy:
Levy on 100 % docker-sovelluksen käyttämä levy, ja aluksi epäillään, että lokitiedostojen kirjoittamisen kyvyttömyys estää moduulia tarjoamasta palveluita ulkomaailmalle.
Etsi suuria tiedostoja ja lopulta etsi ne /var/lib/docker/containers/ alihakemistostaEräs json.log tiedosto vie 30G。
Juoksevien astialokkien puhdistus (oireiden hoito)
Jotta astia voi tarjoilla normaalisti heti. Väliaikainen ratkaisu: puhdista tällaiset tiedostot nopeasti, vapauta kiintolevytilaa, skripti on seuraava:
Jos docker-kontti on käynnissä, poistamalla lokit rm -rf:llä, huomaat, ettei levytilaa vapautu df -h:n kautta. Syynä on se, että Linux- tai Unix-järjestelmissä tiedoston poistaminen rm -rf:n tai tiedostonhallinnan kautta irrottaa sen tiedostojärjestelmän hakemistorakenteesta. Jos tiedosto avataan (ja käytössä on prosessi), prosessi pystyy silti lukemaan tiedoston ja levytilaa vie koko ajan. Oikea asento on cat /dev/null > *-json.log, ja tietysti voit myös käynnistää dockerin uudelleen sen poistamisen jälkeen rm -rf:n kautta.
Huomautus:Luo uusi skripti vapaan levyn hakemistoon, muuten skriptiä ei voi luoda normaalisti。
Docker-kontin lokin koon asettaminen (juurisyy)
Aseta konttipalvelun maksimilokikoko ja lisää parametri laatikon logaritin koon asettamiseen kontin käynnistyksen yhteydessä, esimerkiksi:
max-size=500m, mikä tarkoittaa, että säiliön logaritmikoko yläraja on 500M, max-file=3, mikä tarkoittaa, että kontilla on kolme lokikirjaa: id+.json, id+1.json ja id+2.json.
Docker siirtyi uudelle levylle
Dockeriin liittyvää dataa on järjestelmälevyllä, järjestelmälevyn koko on vain 50G ja datalevy 100G, miten siirtää olemassa olevat dockerin tiedot datalevylle?
Dockerille, joka on asennettu CentOS-järjestelmän yum-menetelmällä, oletusasennushakemiston pitäisi olla: /var/lib/docker
Docker-versio < v17.05.0
Koska dockerd voi määrittää kuvan ja kontin tallennuspolun parametrigraafin kautta, kuten –graph=/var/lib/docker, meidän tarvitsee vain muokata konfiguraatiotiedostoa käynnistysparametrien määrittämiseksi.
Dockerin konfiguraatiotiedosto voi asettaa suurimman osan taustalla olevista prosessiparametreista, ja tallennuspaikka kummassakin käyttöjärjestelmässä on epäjohdonmukainen: Ubuntu: /etc/default/docker ja CentOS:ssa: /etc/sysconfig/docker.
Docker-versio >= v17.05.0
Koska Docker virallisesti poisti graafiominaisuuden tässä julkaisussa, jos sinulla on koneellasi Docker-versio >= v17.05.0, et voi muuttaa Dockerin oletusasennuskansiota määrittämällä graph-parametria /etc/default/docker-konfiguraatiotiedostossa.
On muitakin tapoja, joilla uusi Docker-versio voi saavuttaa tavoitteemme muokata asennus(tallennus)-hakemistota: muokkaamalla (uusi) /etc/docker/daemon.json määrittämään data-juuriparametrin arvon.
Docker daemon directory configuration:Hyperlinkin kirjautuminen on näkyvissä.
Migraatiovalmistelu: Pysäytä kaikki konttisovellukset ja pysäytä docker-palvelut (systemctl stop docker).
Luo uusi hakemisto /home/software-tiedostoon seuraavalla komennolla:
Siirrä /var/lib/docker-hakemisto /home/software/docker-kansioon (suositellaan kopioimaan se ja poistamaan /var/lib/docker-hakemistotiedosto, kun se on kunnossa), komento on seuraava:
KopioidessaMuista lisätä -a-parametri, muuten jotkut säiliöt eivät toimi kunnolla!!!!!
Katso kaikki pehmeät yhteydet ja tiedostopisteet nykyisessä hakemistossa seuraavalla komennolla:
Muokkaa /etc/docker/daemon.json-tiedostoa seuraavalla komennolla:
Tallenna, sitten aloita docker-palvelu seuraavalla komennolla:
Käynnistä kontti, testit toimivat normaalisti, ja lopuksi,Poista /var/lib/docker -kansio。
(Loppu)
|