Jak vypíšete seznam všech kontejnerů dockerů přítomných ve vašem systému?
Existují dva způsoby, jak to udělat:
- Pomocí
docker ps
příkaz (starší a populární metoda) - Použití
docker container
příkaz (novější a méně známá metoda)
Dovolte mi rychle uvést seznam příkazů s nejběžnějšími příklady pro vaši rychlou orientaci.
příkaz ps | container command | Zobrazení příkazů |
---|---|---|
docker ps | docker kontejner ls | běžící kontejnery |
docker ps -a | docker kontejner ls -a | všechny kontejnery |
docker ps -f "status=exited" | docker kontejner ls -f "status=exited" | zastavené kontejnery |
docker ps -q | docker kontejner ls -q | ID spuštěných kontejnerů |
docker ps -l | docker kontejner ls -l | nejnověji vytvořený kontejner |
Jak vidíte, obě ps
a container
příkazy jsou totožné s jejich možnostmi.
Protože však chce docker správně organizovat příkazy, doporučuje používat docker container ls
příkaz.
Z tohoto důvodu budu používat docker container ls
v podrobných příkladech.
Zobrazit běžící kontejnery dockeru
Bez jakýchkoli možností uvidíte pouze spuštěné kontejnery.
docker container ls
Výstup je podrobný:
[email protected]:~$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f03e48cb07ea ubuntu "bash" 8 seconds ago Up 6 seconds ubuntu-c-1
93f84eb0f579 alpine "/bin/sh" 23 seconds ago Up 22 seconds alp_con2
Pokud tento výstup vidíte poprvé, dovolte mi vysvětlit různé prvky výstupu:
Container ID
– Jedinečné číselné ID k identifikaci kontejneruImage
- Obrázek Docker, který vytvořil kontejnerCommand
– Výchozí příkaz, který se provede při spouštění kontejneruCreated
- Relativní čas, kdy byl kontejner vytvořenStatus
- Stav kontejneru (bude vysvětlen později)Ports
- Publikované porty kontejneruName
- Název kontejneru. Není-li zadána žádná, je i tak přiděleno náhodné jméno.
Vypsat všechny kontejnery dockeru
Pokud chcete vidět všechny kontejnery ve vašem systému, použijte volbu -a
.
docker container ls -a
Zde je ukázkový výstup a můžete vidět, že nyní ukazuje také několik zastavených kontejnerů.
[email protected]:~$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f03e48cb07ea ubuntu "bash" 37 minutes ago Up 37 minutes ubuntu-c-1
93f84eb0f579 alpine "/bin/sh" 37 minutes ago Up 37 minutes alp_con2
1c1c04a84186 alpine "bash" 38 minutes ago Created alp_con
6fbc4bf4897b ubuntu "/bin/bash" 2 hours ago Exited (0) 2 hours ago fervent_hofstadter
8b9565ba7661 alpine "/bin/sh" 2 hours ago Exited (0) 2 hours ago beautiful_williamson
853e748608bc hello-world "/hello" 2 hours ago Exited (0) 2 hours ago stoic_engelbart
Zobrazit pouze zastavené kontejnery
Pokud chcete vypsat pouze zastavené kontejnery, můžete výstup filtrovat na exited
stav.
docker container ls --filter "status=exited"
Zde je filtrovaný výstup:
[email protected]:~$ docker container ls --filter "status=exited"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6fbc4bf4897b ubuntu "/bin/bash" 2 hours ago Exited (0) 2 hours ago fervent_hofstadter
8b9565ba7661 alpine "/bin/sh" 2 hours ago Exited (0) 2 hours ago beautiful_williamson
853e748608bc hello-world "/hello" 2 hours ago Exited (0) 2 hours ago stoic_engelbart
exited
stav je pro zastavené kontejnery. Pro kontejnery existuje několik dalších stavů, které můžete použít pro různé účely:
created
– Kontejner, který byl vytvořen, ale nebyl spuštěnrestarting
– Kontejner v procesu restartovánírunning
- Běžící kontejnerpaused
– Kontejner, jehož procesy byly pozastavenyexited
- Zastavená nádobadead
– Kontejner, který se pokusil zastavit, ale selhal
Ve skutečnosti není filtrování omezeno na stav, můžete filtrovat na základě dalších prvků výstupu výpisu kontejneru, jako je ID kontejneru, název nebo obrázek. Následující příklad používá tento koncept.
Zobrazit kontejnery spojené s obrázkem
Pomocí filtrů můžete zobrazit všechny kontejnery spojené s určitým obrázkem pouze pomocí ancestor
filtr.
docker container ls -a --filter "ancestor=image_name"
Zde je výstup, který zobrazuje všechny kontejnery přidružené k obrazu dockeru Alpine Linux.
[email protected]:~$ docker container ls -a --filter "ancestor=alpine"
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
93f84eb0f579 alpine "/bin/sh" 48 minutes ago Up 48 minutes alp_con2
1c1c04a84186 alpine "bash" 49 minutes ago Created alp_con
8b9565ba7661 alpine "/bin/sh" 2 hours ago Exited (0) 2 hours ago beautiful_williamson
ID kontejneru pouze pro zobrazení
Všimli jste si, že všechny výše uvedené příkazy mají podrobný výstup na kontejnery?
Pokud nepotřebujete další informace, jako je název kontejneru, související obrázek, jeho stav, můžete použít tichou možnost -q
.
Pokud například použiji -q
možnost v předchozím příkladu mi dává pouze ID všech kontejnerů spojených s Alpine Linux.
[email protected]:~$ docker container ls -a -q --filter "ancestor=alpine"
93f84eb0f579
1c1c04a84186
8b9565ba7661
To se hodí v situacích, jako je odstranění všech kontejnerů obrazu dockeru.
No, to je dost pro tento docker tutoriál. Myslím, že jsem zmínil dost případů použití pro výpis kontejnerů v dockeru. Zůstaňte přihlášeni k odběru dalších takových výukových programů.