A kolléga azt mondta, hogy a rendszer nem tud bejelentkezni a tesztkörnyezetbe, határozottan ellenőrizte a megfigyelést, és megállapította, hogy a szolgáltatási port nyitva van, bejelentkezett a szerverre, hogy ellenőrizze a merevlemez használatát, és megállapította, hogy egy adott lemezre szerelt könyvtár tele van, ahogy az alábbi ábrán látható:
A lemez 100%-ban a docker alkalmazás által használt lemez, és kezdetben gyanítják, hogy a naplófájlok írásának képtelensége megakadályozza a modul szolgáltatásnyújtását a külvilágnak.
Keress nagy fájlokat, és végül találd meg őket a /var/lib/docker/containers/ alkönyvtárbanEgy bizonyos json.log fájl 30G-ot foglal el。
Futó tartálynaplók tisztítása (tünetkezelés)
Hogy a tartály azonnal normálisan tálalhasson. Ideiglenes megoldás: gyorsan tisztítsuk ki ezeket a fájlokat, szabadítsd fel a merevlemez helyét, a szkript a következő:
Ha a docker konténer fut, akkor miután törölted a naplókat rm -rf segítségével, azt fogod látni, hogy a df -h segítségével nem szabadul fel a lemezhely. Ennek oka, hogy Linux vagy Unix rendszereken egy fájl törlése rm -rf vagy fájlkezelő segítségével lekapcsolja azt a fájlrendszer könyvtárszerkezetétől. Ha a fájlt megnyitják (és van egy folyamat), a folyamat továbbra is képes lesz olvasni a fájlt, és a lemezhely állandóan elfoglalt. A helyes póz a cat /dev/null > *-json.log, és persze a dockert is újraindíthatod a rm -rf segítségével, miután eltávolítottad.
Megjegyzés:Hozz létre egy új szkriptet, a szabad lemez könyvtárában, különben a szkript nem lehet normálisan létrehozni。
A docker konténer napló méretének beállítása (gyökérok)
Állítsuk be a konténerszolgáltatás maximális naplóméretét, és adj hozzá egy paramétert a konténer naplóméretének beállításához a konténer indításakor, például:
max-size=500m, ami azt jelenti, hogy egy tartály log méretének felső határa 500M, max-file=3, ami azt jelenti, hogy egy konténer három naplót tartalmaz: id+.json, id+1.json és id+2.json.
Docker új lemezre migrált
Dockerrel kapcsolatos adatok vannak a rendszerlemezen, a rendszer lemez mérete csak 50G, az adatlemez pedig 100G, hogyan lehet áthelyezni a Docker meglévő adatait az adatlemezre?
A docker telepítéséhez a CentOS system yum módszerrel az alapértelmezett telepítési könyvtár a következő legyen: /var/lib/docker
Docker verzió < v17.05.0
Mivel a dockerd meg tudja határozni a kép- és konténertároló útvonalat a paramétergrafikon keresztül, például –graph=/var/lib/docker, csak a konfigurációs fájlt kell módosítanunk a startup paraméterek megadásához.
A Docker konfigurációs fájlja képes beállítani a háttérben lévő folyamatparaméterek többségét, és az operációs rendszerek tárolási helye következetlen: Ubuntuban: /etc/default/docker, CentOS-ben: /etc/sysconfig/docker.
Docker verzió >= v17.05.0
Mivel a Docker hivatalosan is lejáratta a gráf funkciót ebben a kiadásban, ha a Docker >= v17.05.0 verzió van telepítve a gépedre, nem módosíthatod a Docker alapértelmezett telepítési (tárolási) könyvtárát azzal, hogy megadod a gráf paramétert az /etc/default/docker konfigurációs fájlban.
Más módokon is elérheti a Docker új verziója a telepítési (tárolás) könyvtár módosításának célját: az (új) /etc/docker/daemon.json módosításával, hogy megadjuk az adatgyökér paraméter értékét.
Docker daemon directory configuration:A hiperlink bejelentkezés látható.
Migrációs előkészítés: Állítsa le az összes konténer alkalmazást és állítsa le docker szolgáltatásokat (systemctl stop docker).
Hozz létre új könyvtárat a /home/software mappában a következő parancskal:
Migráld át a /var/lib/docker könyvtárat a /home/software/docker könyvtárba (ajánlott másolni, majd törölni a /var/lib/docker könyvtár fájlt, ha rendben van), a parancs a következő:
MásoláskorMindenképpen add hozzá a -a paramétert, különben néhány tartály nem fog megfelelően működni!!!!!
Tekintse meg az aktuális könyvtárban az összes soft kapcsolatot és fájlpontot a következő parancsval:
Módosítsd az /etc/docker/daemon.json fájlt a következő parancsot:
Ments, majd indítsa el a dokkoló szolgáltatást a következő parancsot:
Indítsd el a konténert, a tesztek mind normálisan működnek, és végül,Töröld a /var/lib/docker mappát。
(Vége)
|