?
This document uses PHP Chinese website manual Release
列出容器
docker ps [OPTIONS]
名字,簡(jiǎn)寫(xiě) | 默認(rèn) | 描述 |
---|---|---|
--all, -a | false | 顯示所有容器(默認(rèn)顯示正在運(yùn)行) |
--filter, -f | 根據(jù)提供的條件過(guò)濾輸出 | |
--format | 漂亮的打印容器使用Go模板 | |
--last, -n | -1 | 顯示最后創(chuàng)建的容器(包括所有狀態(tài)) |
--latest, -l | false | 顯示最新創(chuàng)建的容器(包括所有狀態(tài)) |
--no-trunc | false | 不要截?cái)噍敵?/p> |
--quiet, -q | false | 只顯示數(shù)字ID |
--size, -s | false | 顯示總文件大小 |
命令 | 描述 |
---|---|
docker | Docker CLI的基本命令。 |
運(yùn)行docker ps --no-trunc
顯示2個(gè)鏈接的容器。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4c01db0b339c ubuntu:12.04 bash 17 seconds ago Up 16 seconds 3300-3310/tcp webapp d7886598dbe2 crosbymichael/redis:latest /redis-server --dir 33 minutes ago Up 33 minutes 6379/tcp redis,webapp/db
docker ps
命令僅默認(rèn)顯示正在運(yùn)行的容器。要查看所有容器,請(qǐng)使用-a
(或--all
)標(biāo)志:
$ docker ps -a
docker ps
如果可能,將暴露的端口分組到單個(gè)范圍。例如,100, 101, 102
顯示TCP端口的容器顯示100-102/tcp
在PORTS
列中。
過(guò)濾標(biāo)志(-f
或--filter
)格式是一key=value
對(duì)。如果有多個(gè)過(guò)濾器,則傳遞多個(gè)標(biāo)志(例如--filter "foo=bar" --filter "bif=baz"
)
目前支持的過(guò)濾器是:
過(guò)濾 | 描述 |
---|---|
id | 容器的ID |
name | 容器的名稱 |
label | 表示鍵或鍵值對(duì)的任意字符串 |
existed | 表示容器退出代碼的整數(shù)。僅適用于--all。 |
status | 一個(gè)正在重新開(kāi)始運(yùn)行 |
ancestor | 篩選共享給定圖像的容器作為祖先。表示為<image-name>:<tag>,<image id>或image @ digest |
before or since | 過(guò)濾在給定容器ID或名稱之前或之后創(chuàng)建的容器 |
volumn | 過(guò)濾運(yùn)行已安裝給定卷或綁定安裝的容器。 |
network | 過(guò)濾運(yùn)行連接到給定網(wǎng)絡(luò)的容器。 |
publish or expose | 過(guò)濾發(fā)布或公開(kāi)給定端口的容器。 |
health | 一個(gè)健康的|不健康的。根據(jù)其健康檢查狀態(tài)過(guò)濾容器。 |
isolation | 僅限Windows守護(hù)進(jìn)程。其中一個(gè)是 default|process|hyperv。 |
label
過(guò)濾器匹配基礎(chǔ)上的存在容器label
單獨(dú)或label
和值。
以下過(guò)濾器會(huì)將具有color
標(biāo)簽的容器與其值相匹配。
$ docker ps --filter "label=color"CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 673394ef1d4c busybox "top" 47 seconds ago Up 45 seconds nostalgic_shockley d85756f57265 busybox "top" 52 seconds ago Up 51 seconds high_albattani
以下過(guò)濾器匹配color
具有blue
值的標(biāo)簽的容器。
$ docker ps --filter "label=color=blue"CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d85756f57265 busybox "top" About a minute ago Up About a minute high_albattani
name
過(guò)濾器上的容器的名字的全部或部分匹配。
以下過(guò)濾器將使用包含該nostalgic_stallman
字符串的名稱來(lái)匹配所有容器。
$ docker ps --filter "name=nostalgic_stallman"CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9b6247364a03 busybox "top" 2 minutes ago Up 2 minutes nostalgic_stallman
您也可以在名稱中篩選子字符串,如下所示:
$ docker ps --filter "name=nostalgic"CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 715ebfcee040 busybox "top" 3 seconds ago Up 1 second i_am_nostalgic 9b6247364a03 busybox "top" 7 minutes ago Up 7 minutes nostalgic_stallman 673394ef1d4c busybox "top" 38 minutes ago Up 38 minutes nostalgic_shockley
exited
過(guò)濾器匹配的存在狀態(tài)代碼容器。例如,要過(guò)濾已成功退出的容器:
$ docker ps -a --filter 'exited=0'CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ea09c3c82f6e registry:latest /srv/run.sh 2 weeks ago Exited (0) 2 weeks ago 127.0.0.1:5000->5000/tcp desperate_leakey 106ea823fe4e fedora:latest /bin/sh -c 'bash -l' 2 weeks ago Exited (0) 2 weeks ago determined_albattani 48ee228c9464 fedora:20 bash 2 weeks ago Exited (0) 2 weeks ago tender_torvalds
你可以使用一個(gè)過(guò)濾器來(lái)定位退出狀態(tài)為137
意味著SIGKILL(9)
終止它們的容器。
$ docker ps -a --filter 'exited=137'CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b3e1c0ed5bfe ubuntu:latest "sleep 1000" 12 seconds ago Exited (137) 5 seconds ago grave_kowalevski a2eb5558d669 redis:latest "/entrypoint.sh redi 2 hours ago Exited (137) 2 hours ago sharp_lalande
任何這些事件都會(huì)導(dǎo)致以下137
狀態(tài):
init
容器的進(jìn)程被手動(dòng)終止
docker kill
終止容器
Docker守護(hù)進(jìn)程重啟會(huì)終止所有正在運(yùn)行的容器
status
過(guò)濾器的狀態(tài)相匹配的容器。您可以使用篩選created
,restarting
,running
,removing
,paused
,exited
和dead
。例如,要過(guò)濾running
容器:
$ docker ps --filter status=running CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 715ebfcee040 busybox "top" 16 minutes ago Up 16 minutes i_am_nostalgic d5c976d3c462 busybox "top" 23 minutes ago Up 23 minutes top 9b6247364a03 busybox "top" 24 minutes ago Up 24 minutes nostalgic_stallman
過(guò)濾paused
容器:
$ docker ps --filter status=paused CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 673394ef1d4c busybox "top" About an hour ago Up About an hour (Paused) nostalgic_shockley
ancestor
過(guò)濾器匹配基于它的形象或它的后代在集裝箱上。該過(guò)濾器支持以下圖像表示形式:
image
image:tag
image:tag@digest
short-id
full-id
如果您未指定tag
,latest
則使用標(biāo)簽。例如,要篩選使用最新ubuntu
映像的容器,請(qǐng)執(zhí)行以下操作:
$ docker ps --filter ancestor=ubuntu CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 919e1179bdb8 ubuntu-c1 "top" About a minute ago Up About a minute admiring_lovelace 5d1e4a540723 ubuntu-c2 "top" About a minute ago Up About a minute admiring_sammet 82a598284012 ubuntu "top" 3 minutes ago Up 3 minutes sleepy_bose bab2a34ba363 ubuntu "top" 3 minutes ago Up 3 minutes focused_yonath
根據(jù)ubuntu-c1
圖像匹配容器,在這種情況下,圖像是以下圖像的子項(xiàng)ubuntu
:
$ docker ps --filter ancestor=ubuntu-c1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 919e1179bdb8 ubuntu-c1 "top" About a minute ago Up About a minute admiring_lovelace
根據(jù)ubuntu
版本12.04.5
圖像匹配容器:
$ docker ps --filter ancestor=ubuntu:12.04.5CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 82a598284012 ubuntu:12.04.5 "top" 3 minutes ago Up 3 minutes sleepy_bose
以下內(nèi)容將匹配基于該圖層d0e008c6cf02
或圖層的圖層的容器。
$ docker ps --filter ancestor=d0e008c6cf02 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 82a598284012 ubuntu:12.04.5 "top" 3 minutes ago Up 3 minutes sleepy_bose
before
過(guò)濾器只顯示與給定id或名稱容器之前創(chuàng)建的容器。例如,創(chuàng)建這些容器:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9c3527ed70ce busybox "top" 14 seconds ago Up 15 seconds desperate_dubinsky 4aace5031105 busybox "top" 48 seconds ago Up 49 seconds focused_hamilton 6e63f6ff38b0 busybox "top" About a minute ago Up About a minute distracted_fermat
過(guò)濾before
將給:
$ docker ps -f before=9c3527ed70ce CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4aace5031105 busybox "top" About a minute ago Up About a minute focused_hamilton 6e63f6ff38b0 busybox "top" About a minute ago Up About a minute distracted_fermat
since
過(guò)濾器只顯示自定id或名稱的容器中創(chuàng)建容器。例如,使用與before
過(guò)濾器中相同的容器:
$ docker ps -f since=6e63f6ff38b0 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9c3527ed70ce busybox "top" 10 minutes ago Up 10 minutes desperate_dubinsky 4aace5031105 busybox "top" 10 minutes ago Up 10 minutes focused_hamilton
volume
過(guò)濾器僅顯示裝入一個(gè)特定的體積或具有安裝在一個(gè)特定的路徑的容積的容器:
$ docker ps --filter volume=remote-volume --format "table {{.ID}}\t{{.Mounts}}"CONTAINER ID MOUNTS 9c3527ed70ce remote-volume $ docker ps --filter volume=/data --format "table {{.ID}}\t{{.Mounts}}"CONTAINER ID MOUNTS 9c3527ed70ce remote-volume
network
過(guò)濾器僅顯示了連接到網(wǎng)絡(luò)的具有給定名稱或ID的容器。
以下過(guò)濾器匹配連接到名稱包含的網(wǎng)絡(luò)的所有容器net1
。
$ docker run -d --net=net1 --name=test1 ubuntu top $ docker run -d --net=net2 --name=test2 ubuntu top $ docker ps --filter network=net1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d4893ed80fe ubuntu "top" 10 minutes ago Up 10 minutes test1
網(wǎng)絡(luò)過(guò)濾器匹配網(wǎng)絡(luò)的名稱和ID。以下示例顯示了net1
使用網(wǎng)絡(luò)ID作為過(guò)濾器連接到網(wǎng)絡(luò)的所有容器;
$ docker network inspect --format "{{.ID}}" net1 8c0b4110ae930dbe26b258de9bc34a03f98056ed6f27f991d32919bfe401d7c5 $ docker ps --filter network=8c0b4110ae930dbe26b258de9bc34a03f98056ed6f27f991d32919bfe401d7c5 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d4893ed80fe ubuntu "top" 10 minutes ago Up 10 minutes test1
publish
和expose
過(guò)濾器僅顯示已發(fā)布或暴露端口與給定的端口號(hào),端口范圍,and/or協(xié)議的容器。默認(rèn)協(xié)議是tcp
沒(méi)有指定的時(shí)候。
以下過(guò)濾器匹配發(fā)布端口為80的所有容器:
$ docker run -d --publish=80 busybox top $ docker run -d --expose=8080 busybox top $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9833437217a5 busybox "top" 5 seconds ago Up 4 seconds 8080/tcp dreamy_mccarthy fc7e477723b7 busybox "top" 50 seconds ago Up 50 seconds 0.0.0.0:32768->80/tcp admiring_roentgen $ docker ps --filter publish=80CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES fc7e477723b7 busybox "top" About a minute ago Up About a minute 0.0.0.0:32768->80/tcp admiring_roentgen
以下過(guò)濾器匹配所有具有以下范圍的暴露TCP端口的容器8000-8080
:
$ docker ps --filter expose=8000-8080/tcp CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9833437217a5 busybox "top" 21 seconds ago Up 19 seconds 8080/tcp dreamy_mccarthy
以下過(guò)濾器匹配具有公開(kāi)UDP端口的所有容器80
:
$ docker ps --filter publish=80/udp CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
格式化選項(xiàng)(--format
)使用Go模板漂亮地打印容器輸出。
Go模板的有效占位符列在下面:
占位符 | 描述 |
---|---|
.ID | 容器ID |
.Image | 圖像ID |
.Command | 引用的命令 |
.CreatedAt | 容器創(chuàng)建的時(shí)間。 |
.RunningFor | 自從容器啟動(dòng)以來(lái)的耗時(shí)。 |
.Ports | 暴露的端口。 |
.Status | 容器狀態(tài)。 |
.Size | 容器磁盤(pán)大小。 |
.Names | 容器名稱。 |
.Labels | 所有分配給容器的標(biāo)簽。 |
.Label | 此容器的特定標(biāo)簽的值。例如'{{.Label“com.docker.swarm.cpu”}}' |
.Mounts | 安裝在此容器中的卷的名稱。 |
.Networks | 連接到此容器的網(wǎng)絡(luò)的名稱。 |
當(dāng)使用--format
選項(xiàng)時(shí),ps
命令將完全按照模板聲明輸出數(shù)據(jù),或者在使用table
指令時(shí)也包含列標(biāo)題。
下面的示例使用的模板沒(méi)有報(bào)頭,并輸出ID
與Command
由所有正在運(yùn)行的容器冒號(hào)分隔條目:
$ docker ps --format "{{.ID}}: {{.Command}}"a87ecb4f327c: /bin/sh -c #(nop) MA 01946d9d34d8: /bin/sh -c #(nop) MA c1d3b0166030: /bin/sh -c yum -y up 41d50ecd2f57: /bin/sh -c #(nop) MA
要以表格格式列出所有正在運(yùn)行的容器及其標(biāo)簽,可以使用:
$ docker ps --format "table {{.ID}}\t{{.Labels}}"CONTAINER ID LABELS a87ecb4f327c com.docker.swarm.node=ubuntu,com.docker.swarm.storage=ssd 01946d9d34d8 c1d3b0166030 com.docker.swarm.node=debian,com.docker.swarm.cpu=641d50ecd2f57 com.docker.swarm.node=fedora,com.docker.swarm.cpu=3,com.docker.swarm.storage=ssd