Docker-PS命令解析


查看 docker 容器,必然要用到 docker ps 命令。其基本格式為:

docker ps [OPTIONS]

關鍵在於 OPTIONS(選項):

1

常見用法

1. 最常見的用法

$ docker ps

顯示當前正在運行的容器。

在 PORTS 一列,如果暴露的端口是連續的,還會被合並在一起,例如一個容器暴露了3個 TCP 端口:100,101,102,則會顯示為 100-102/tcp。

2. 顯示所有狀態的容器

$ docker ps -a

容器的狀態共有 7 種:created|restarting|running|removing|paused|exited|dead。

3. 顯示最后被創建的 n 個容器

$ docker ps -n 3

注意,這里不限狀態。

4. 顯示最后被創建的容器

$ docker ps -l

相當於 docker ps -n 1。

5. 顯示完整輸出

$ docker ps --no-trunc

即不會截斷輸出。該選項有點長,其中 trunc 算是 truncate 的縮寫。

6. 只顯示容器 ID

$ docker ps -q

清理容器時非常好用,filter 過濾顯示一節有具體實例。

7. 顯示容器文件大小

$ docker ps -s

該命令很實用,可以獲得 2 個數值:一個是容器真實增加的大小,一個是整個容器的虛擬大小。

查看源碼(https://github.com/moby/moby/blob/master/daemon/getsize_unix.go)后可知,容器虛擬大小 = 容器真實增加大小 + 容器鏡像大小。

2

高級用法

Filter 過濾顯示

如果容器數量過多,或者想排除干擾容器,可以通過 --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,且狀態為 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 中指定的內容:

$ 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 指令:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM