GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak zkontrolovat, zda běží démon Docker nebo kontejner

Docker používá architekturu založenou na démonech, kde se CLI připojuje k dlouhodobému procesu běžícímu samostatně na vašem počítači nebo vzdáleném hostiteli. Příkazy CLI nebudou fungovat a vaše kontejnery obvykle přejdou do režimu offline, pokud se démon zastaví.

Zde je návod, jak zkontrolovat, zda je spuštěn démon Docker, abyste mohli diagnostikovat problémy s kontejnery a docker příkaz. Když démon neběží, při každém použití docker se zobrazí zpráva „nelze se připojit k démonu Docker“ CLI.

Kontrola pomocí Systemctl

Stav Dockeru můžete zkontrolovat pomocí systemctl na distribucích, které používají Systemd pro správu služeb. To pokrývá většinu oblíbených operačních systémů včetně Debian, Ubuntu, CentOS a Red Hat.

sudo systemctl status docker

Zkontrolujte, co se zobrazuje pod „Aktivní“. Pokud vidíte active (running) zeleně, démon Docker běží a vaše kontejnery by měly být spuštěny.

Aktivní stav inactive označuje, že služba byla zastavena. Zkuste to vyvolat spuštěním sudo systemctl start docker . Stav by se měl změnit na active (running) po spuštění démona.

Pokud vidíte stav failed červeně, démon se nemohl spustit kvůli chybě. Měli byste si prohlédnout spouštěcí protokoly služby zobrazené později v systemctl výstup příkazu, protože tyto obvykle obsahují rady, které vám umožní zjistit, co se pokazilo.

Pokud není k dispozici žádné zřejmé rozlišení, spusťte démona ručně v režimu ladění, abyste získali více informací o jeho spouštěcí rutině.

sudo dockerd --debug

Restartování hostitelského počítače nebo restartování služby Docker pomocí systemctl restart docker může také pomoci zmírnit přechodné problémy.

Kontrola podrobností procesu

Dalším způsobem, jak zkontrolovat běžícího démona Docker, je kontrola jeho souboru ID procesu. Démon zapíše své ID procesu do /var/run/docker.pid pokaždé, když se spustí. Když tento soubor existuje, Docker by měl být spuštěný a připravený pro připojení CLI.

cat /var/run/docker.pid

Tuto techniku ​​můžete použít k vytvoření programových skriptů, které kontrolují, zda je démon naživu. Čtením souboru získáte ID, které můžete použít s nástroji jako top Chcete-li získat další informace o procesu Docker:

cat /var/run/docker.pid

# process id = 1000

top -p 1000

ID procesu můžete také získat pomocí pidof příkaz. To přijme název procesu a vrátí první odpovídající ID:

pidof dockerd

# process id = 1000

# view information with top
top -p `pidof dockerd`

Pokud je top, na vašem počítači je aktivní démon Docker odpovídá dockerd proces. To může být spolehlivější než hledání docker.pid – pokud se démon zhroutí, docker.pid může zůstat po skončení procesu.

Zpracování zaseknutých procesních souborů

Démon se odmítne restartovat, když je přítomen soubor PID. To by vás mohlo uvíznout ve smyčce restartu, pokud je soubor skutečně osiřelý po předchozím spuštění. Tato zpráva se zobrazí při spuštění dockerd :

failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid

Použijte pidof dockerd abyste se ujistili, že se Docker skutečně zastavil. Pokračujte, pokud příkaz nevydává žádný výstup, což potvrzuje, že neprobíhá žádný proces.

Spusťte sudo rm /var/run/docker.pid k odstranění starého souboru ID procesu. Démon by se nyní měl úspěšně spustit při příštím spuštění dockerd nebo service docker start .

Problémy se soubory PID se běžně vyskytují, když pořídíte snímek virtuálního počítače a poté z bitové kopie vytvoříte novou instanci. Soubor procesu bude zahrnut do snímku, což způsobí, že démon Docker v novém virtuálním počítači si bude myslet, že již běží.

Kontrola jednotlivých kontejnerů

Ke stavu jednotlivých kontejnerů se přistupuje přes docker ps příkaz. Tím se vygeneruje tabulka obsahující podrobnosti o všech aktuálně spuštěných kontejnerech.

docker ps

Zkombinujte docker ps příkaz s grep pro snadnou kontrolu, zda je konkrétní kontejner spuštěn podle ID nebo názvu:

docker ps | grep my-container-name

Nyní bude výstup filtrován, aby se zobrazil kontejner, který jste vybrali. Pokud kontejner neběží, nebudou žádné záznamy.

Zastavené kontejnery se zobrazují pomocí docker ps -a . Zastavený kontejner lze spustit pomocí docker start příkaz:

docker start my-container

Kontejner se poté přesune do běžného docker ps výstup. Můžete jej znovu zastavit pomocí docker stop my-container .

Závěr

Máte několik možností, které je třeba zvážit, když chcete vědět, zda je Docker spuštěn. Zde je správce služeb vašeho operačního systému, docker.pid soubor a nástroje pro pravidelnou kontrolu procesu, jako je top a pidof .

Pokud jde o jednotlivé kontejnery, docker ps poskytuje seznam všeho, co aktuálně běží na vašem hostiteli. Podrobnější informace o stavu libovolného kontejneru lze získat pomocí docker inspect container-name který poskytuje podrobnosti o konfiguraci sítě, svazcích a štítcích ve formátu JSON.


Docker
  1. Jak udržet kontejnery Docker v chodu, když se démon zastaví

  2. Jak spustit příkaz na spuštěném kontejneru Docker

  3. Jak přiřadit statickou IP ke kontejneru Docker

  1. Jak vypsat Docker kontejnery

  2. Jak změnit časové pásmo pro kontejner Docker

  3. Jak zadat název hostitele pro běžící kontejner?

  1. Jak spustit MySQL v kontejneru Docker

  2. Jak SSH do kontejneru Docker

  3. Jak nainstalovat Vim do kontejneru Docker