查看 docker 容器,必然要用到 docker ps 命令芯侥。其基本格式為:
docker ps [OPTIONS]
關鍵在于 OPTIONS(選項):
1
常見用法
1. 最常見的用法
$ docker ps
顯示當前正在運行的容器。
在 PORTS 一列捣炬,如果暴露的端口是連續(xù)的而钞,還會被合并在一起,例如一個容器暴露了3個 TCP 端口:100扶叉,101,102帕膜,則會顯示為 100-102/tcp枣氧。
2. 顯示所有狀態(tài)的容器
$ docker ps -a
容器的狀態(tài)共有 7 種:created|restarting|running|removing|paused|exited|dead。
3. 顯示最后被創(chuàng)建的 n 個容器
$ docker ps -n 3
注意垮刹,這里不限狀態(tài)达吞。
4. 顯示最后被創(chuàng)建的容器
$ docker ps -l
相當于 docker ps -n 1。
5. 顯示完整輸出
$ docker ps --no-trunc
即不會截斷輸出荒典。該選項有點長酪劫,其中 trunc 算是 truncate 的縮寫。
6. 只顯示容器 ID
$ docker ps -q
清理容器時非常好用寺董,filter 過濾顯示一節(jié)有具體實例覆糟。
7. 顯示容器文件大小
$ docker ps -s
該命令很實用,可以獲得 2 個數(shù)值:一個是容器真實增加的大小遮咖,一個是整個容器的虛擬大小滩字。
查看源碼(https://github.com/moby/moby/blob/master/daemon/getsize_unix.go)后可知,容器虛擬大小 = 容器真實增加大小 + 容器鏡像大小御吞。
2
高級用法
Filter 過濾顯示
如果容器數(shù)量過多踢械,或者想排除干擾容器,可以通過 --filter 或 -f 選項魄藕,過濾需要顯示的容器。
當前支持的過濾條件非常豐富撵术,包括:
條件雖多背率,但萬變不離其宗,只要再記住以下 3 條準則:
1. 選項后跟的都是鍵值對 key=value (可不帶引號),如果有多個過濾條件寝姿,就多次使用 filter 選項交排。例如:
docker ps --filter id=a1b2c3 --filter name=bingohuang
2. 相同條件之間的關系是或,不同條件之間的關系是與饵筑。例如:
docker ps --filter name=bingo --filter name=huang --filter status=running
以上過濾條件會找出 name 包含 bingo 或 huang 并且 status 為 running 的容器埃篓。
3. id 和 name,支持正則表達式根资,使用起來非常靈活架专。例如:
docker ps --filter name=^/bingohuang$
精確匹配 name 為 bingohuang 的容器。注意玄帕,容器實際名稱部脚,開頭是有一個正斜線 / ,可用 docker inspect 一看便知裤纹。
docker ps --filter name=.*bingohuang.*
匹配 name 包含 bingohuang 的容器委刘,和 --filter name=bingohuang 一個效果。
最后, 舉一個復雜點的例子鹰椒,用于清理名稱包含 bingohuang锡移,且狀態(tài)為 exited 或 dead 的容器:
docker rm $(docker ps -q --filter name=.bingohuang. --filter status=exited --filter status=dead2>/dev/null)
Format 格式化顯示
如果想自定義顯示容器字段,可以用格式化選項 --format 漆际。
基于 Go template(https://golang.org/pkg/html/template/)語法淆珊,可用的占位符如下:
1. 當使用了 --format 選項,那么 ps 命令只會輸出 template 中指定的內(nèi)容:
$ 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
2. 如果想帶上表格列頭灿椅,需要再 template 中加上 table 指令: