Kolega reagoval, že systém se nemůže přihlásit do testovacího prostředí, rozhodně zkontroloval monitoring, zjistil, že servisní port je otevřený, přihlásil se na server, aby zkontroloval využití pevného disku, a zjistil, že adresář připojený na určitém disku je plný, jak je znázorněno na obrázku níže:
Disk je 100% ten, který používá docker aplikace, a zpočátku se předpokládá, že neschopnost zapisovat logovací soubory brání modulu poskytovat služby vnějšímu světu.
Hledejte velké soubory a nakonec je najděte v podadresáři /var/lib/docker/containers/Určitý json.log soubor zabírá 30G。
Čištění běžících záznamů kontejnerů (léčba příznaků)
Aby nádoba mohla okamžitě normálně podávat. Dočasné řešení, rychle vyčistit takové soubory, uvolnit místo na pevném disku, skript je následující:
Pokud běží docker kontejner, pak po smazání logů pomocí rm -rf zjistíte, že místo na disku není uvolněno pomocí df -h. Důvodem je, že na systémech Linux nebo Unix smazání souboru přes rm -rf nebo správce souborů ho odpojí od adresářové struktury souborového systému. Pokud je soubor otevřen (a proces je v provozu), proces bude stále schopen soubor číst a místo na disku bude neustále zabíráno. Správná pozice je cat /dev/null > *-json.log, a samozřejmě můžete také restartovat docker po jeho odstranění přes rm -rf.
Poznámka:Vytvořte nový skript v adresáři volného disku, jinak skript nelze vytvořit normálně。
Nastavení velikosti logu docker kontejneru (hlavní příčina)
Nastavte maximální velikost logu služby kontejneru a přidejte parametr pro nastavení velikosti logu kontejneru při spuštění kontejneru, například:
max-size=500m, což znamená, že horní hranice velikosti logu kontejneru je 500M, max-file=3, což znamená, že kontejner má tři logy, a to id+.json, id+1.json a id+2.json.
Docker migroval na nový disk
Na systémovém disku existují data související s dockerem, systémový disk má velikost pouze 50G a datový disk 100G, jak přesunout existující data z Dockeru na datový disk?
Pro docker nainstalovaný metodou CentOS systemového yum by výchozí instalační adresář měl být: /var/lib/docker
Docker verze < v17.05.0
Protože dockerd může specifikovat cestu úložiště obrazu a kontejneru prostřednictvím grafu parametrů, například –graph=/var/lib/docker, stačí upravit konfigurační soubor pro specifikaci startovacích parametrů.
Konfigurační soubor Dockeru dokáže nastavit většinu parametrů procesů na pozadí a umístění úložiště v každém operačním systému je nekonzistentní, v Ubuntu: /etc/default/docker a v CentOS: /etc/sysconfig/docker.
Docker verze >= v17.05.0
Protože Docker oficiálně zrušil funkci grafů v této verzi, pokud máte na svém počítači nainstalovanou verzi Dockeru >= v17.05.0, nemůžete upravit výchozí instalační (úložiště) adresáře Dockeru zadáním parametru grafu v konfiguračním souboru /etc/default/docker.
Existují i jiné způsoby, jak může nová verze Dockeru dosáhnout našeho cíle upravit adresář instalace (úložiště): úpravou (nového) /etc/docker/daemon.json tak, aby specifikoval hodnotu parametru kořene dat.
Konfigurace adresáře Docker daemon:Přihlášení k hypertextovému odkazu je viditelné.
Příprava na migraci: Zastavte všechny kontejnerové aplikace a zastavte docker služby (systemctl stop docker).
Vytvořte nový adresář v /home/software pomocí následujícího příkazu:
Migrujte adresář /var/lib/docker do adresáře /home/software/docker (doporučuje se jej zkopírovat a poté soubor adresáře /var/lib/docker smazat, když je to v pořádku), příkaz je následující:
Při kopírováníNezapomeňte přidat parametr -a, jinak některé kontejnery nebudou správně fungovat!!!!!
Zobrazit všechna měkká spojení a bodové body v aktuálním adresáři pomocí následujícího příkazu:
Upravte soubor /etc/docker/daemon.json následujícím příkazem:
Uložit a poté spustit docker službu následujícím příkazem:
Spustím kontejner, všechny testy běží normálně a nakonec,Smažte složku /var/lib/docker。
(Konec)
|