GNU/Linux >> Znalost Linux >  >> Linux

Užitečné příklady příkazu Docker ps

Jedním z prvních příkazů Dockeru, který používáte, je docker ps příkaz. Zobrazuje běžící kontejnery:

docker ps

Spuštěním tohoto příkazu získáte seznam spuštěných kontejnerů a jejich jedinečné ID kontejneru, název obrázku, příkaz, který provádí, dobu od spuštění (uptime) a porty, které používá.

Ale můžete s tím udělat trochu víc. Můžete zobrazit zastavené kontejnery, filtrovat výsledek nebo jen zobrazit ID kontejnerů.

Pojďme se na tento základní příkaz Dockeru podívat trochu podrobněji.

Příkaz docker ps

Docker má alias pro zobrazení všech běžících kontejnerů s konvencí pojmenování přátelského standardu POSIX.

To je ps dílčí příkaz v Dockeru. Je to alias docker container ls . Který, jak můžete hádat, se používá pro výpis kontejnerů dokovacích stanic.

Zde je příklad spuštění docker ps na mém počítači:

$ docker ps 
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

Jak vidíte, tento příkaz zobrazí podrobnosti o všech běžících kontejnerech.

Zobrazené podrobnosti jsou jedinečné ID kontejneru, název obrázku, příkaz, který kontejner provádí, datum, kdy byl kontejner vytvořen, doba provozu, mapované porty a název kontejneru.

Jako správce systému budete tento příkaz často používat ve skriptu. Docker nabízí několik možností, které mohou být užitečné při spuštění docker ps ve skriptu.

Zobrazit všechny kontejnery (nejen ty běžící)

Jako UNIX ps příkaz se používá k zobrazení procesů (programů, které se spouštějí), Docker se chová podobně.

Spuštění docker ps zobrazí pouze ukotvitelné kontejnery, které jsou aktivní.

Pokud běžící kontejner zastavíte, stále existuje, pouze již neběží.

Chcete-li zobrazit kontejnery, které jsou ve stavu zastaveno, použijte --all (nebo -a ) možnost takto:

docker ps --all

Zastavil jsem kontejner transmission_web . Podívejme se, co dostanu na výstupu.

$ docker ps -a
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                       PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   32 seconds ago   Up 31 seconds                0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
140161b8b139   mariadb                            "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds                3306/tcp                                nextcloud_db
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  17 minutes ago   Exited (137) 9 minutes ago                                           transmission_web

Jak můžete vidět, -a volba také zobrazuje kontejner, který byl zastaven.

Filtrujte výstup docker ps pro přesnější výsledky

docker ps má velmi užitečnou volbu --filter (nebo -f zkráceně).

Jak je zřejmé z názvu možnosti, můžete filtrovat kontejnery pomocí následujících polí:

  • id
  • name
  • label
  • exited
  • status
  • ancestor
  • since
  • volume
  • publish
  • health
  • isolation

Vytvořil jsem kontejner s názvem nextcloud_server . Chci vidět podrobnosti o kontejnerech, ale pouze ty s názvem, který hledám. Podívejme se, jak používat name filtr.

$ docker ps --filter "name=nextcloud_server"
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                                   NAMES
58c7013a49c3   nextcloud   "/entrypoint.sh apac…"   3 hours ago   Up 3 hours   0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server

Mám spuštěno několik kontejnerů, ale předávám je pomocí name filtr zobrazí pouze kontejnery, které odpovídají názvu.

Zkusme použít id filtr. Mám kontejner MariaDB s ID "140161b8b139". K tomu použiji následující příkaz.

$ docker ps --filter "id=140161b8b139"
CONTAINER ID   IMAGE     COMMAND                  CREATED        STATUS        PORTS      NAMES
140161b8b139   mariadb   "docker-entrypoint.s…"   15 hours ago   Up 15 hours   3306/tcp   nextcloud_db

Snadný! Dostal jsem kontejner se shodným ID.

Zobrazit kontejnery v pořadí, v jakém byly vytvořeny

Ano, kontejnery můžete uvést seřazené v pořadí podle data vytvoření pomocí --latest (nebo l zkráceně).

Pořadí je nejnovější nahoře a nejstarší dole.

Zde je ukázkový výstup spuštění příkazu docker ps --latest na mém počítači:

$ docker ps --latest
CONTAINER ID   IMAGE                              COMMAND                  CREATED        STATUS                      PORTS                                   NAMES
58c7013a49c3   nextcloud                          "/entrypoint.sh apac…"   15 hours ago   Up 15 hours                 0.0.0.0:8010->80/tcp, :::8010->80/tcp   nextcloud_server
73a6901a4846   lscr.io/linuxserver/transmission   "/init"                  16 hours ago   Exited (137) 16 hours ago                                           transmission_web

Tento příkaz má několik problémů.

  • Žádné kontejnery, které se používají jako "závislost", nebudou uvedeny
  • Výstup zahrnuje všechny stavy kontejneru (to znamená, že budou uvedeny i kontejnery, které jsou zastaveny)

Vytvořil jsem kontejner „nextcloud_server“ s MariaDB jako jeho „závislostí“. Při použití --latest tedy tento kontejner není uveden ve výstupu vlajka.

Skriptujete hodně? Zobrazit pouze ID kontejnerů

Předpokládejme, že píšete skript a chcete se zabývat pouze ID kontejnerů, abyste mohli provádět akce s kontejnery. K tomu můžete použít --quiet (nebo -q zkráceně) možnost.

Níže je uveden výstup spuštění docker ps -q na mém počítači.

$ docker ps -q
58c7013a49c3
140161b8b139

Jak vidíte, výstup se skládá pouze z ID kontejnerů (kontejnerů, které jsou spuštěny) a nic jiného.

Jak vidíte, příkaz Docker ps obsahuje více než jen zobrazování informací o běžícím kontejneru. Dejte mi vědět, jestli jste se naučili něco nového nebo jestli znáte nějaký další užitečný příklad docker ps příkaz.


Linux
  1. 12 Užitečné příklady příkazů Wget v Linuxu

  2. Příkaz ls v Linuxu:17 vysvětlení užitečných příkladů

  3. 9 Užitečné příklady příkazu Split v Linuxu

  1. 5 Praktické příklady příkazu dd v Linuxu

  2. Jak používat příkaz id v Linuxu:5 užitečných příkladů

  3. 5 Užitečné příklady příkazu firewall-cmd

  1. 20 užitečných příkladů příkazů Docker v Linuxu

  2. 14 Užitečné příklady příkazů „ls“ v Linuxu

  3. 9 Užitečné příklady dotykových příkazů v Linuxu