除了基本的docker pull孕暇、docker image、docker ps伏钠,還有一些命令及參數(shù)也很重要盗痒,在此記錄下來避免遺忘蚂蕴。
環(huán)境信息
以下是本次操作的環(huán)境:
操作系統(tǒng):CentOS Linux release 7.7.1908
Docker:19.03.2
假設(shè)當(dāng)前環(huán)境正運(yùn)行著兩個(gè)容器,接下來的操作都基于這兩個(gè)容器進(jìn)行:
[root@vostro harbor]# docker psCONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? ? ? ? ? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? NAMES11548ac31116? ? ? ? tomcat:9.0.26-jdk8-openjdk? "catalina.sh run"? ? ? ? 6 seconds ago? ? ? Up 5 seconds? ? ? ? 8080/tcp? ? ? ? ? ? inspiring_ardinghelli21c0499ccc76? ? ? ? nginx? ? ? ? ? ? ? ? ? ? ? ? "nginx -g 'daemon of…"? 29 minutes ago? ? ? Up 29 minutes? ? ? 80/tcp? ? ? ? ? ? ? strange_zhukovsky復(fù)制代碼
整體信息
docker info用來看整體信息:
[root@vostro harbor]# docker infoClient: Debug Mode: falseServer: Containers: 0? Running: 0? Paused: 0? Stopped: 0 Images: 19 Server Version: 19.03.2 Storage Driver: overlay? Backing Filesystem: xfs? Supports d_type: true...復(fù)制代碼
釋放空間
docker system prune會(huì)刪除以下內(nèi)容:
a. 已經(jīng)停止的容器;
b. 未被使用的網(wǎng)絡(luò)掂墓;
c. 所有未打標(biāo)簽的鏡像谦纱;
d. 構(gòu)建鏡像時(shí)產(chǎn)生的緩存;
注意:此命令刪除的東西過多君编,所以要慎用
刪除已經(jīng)停止的容器:docker container prune
刪除未被使用的網(wǎng)絡(luò):docker network prune
刪除沒有Tag的鏡像:docker image prune
刪除沒有容器的鏡像:docker image prune -a
刪除未被使用的數(shù)據(jù)卷:docker volume prune
過濾
執(zhí)行docker ps的時(shí)候會(huì)列出所有運(yùn)行狀態(tài)的容器跨嘉,有時(shí)我們只想看自己關(guān)注的,這時(shí)可以對(duì)結(jié)果做過濾:
按容器ID過濾:docker ps -f id=11548ac31116
[root@vostro harbor]# docker ps -f id=11548ac31116CONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? ? ? ? ? ? COMMAND? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? NAMES11548ac31116? ? ? ? tomcat:9.0.26-jdk8-openjdk? "catalina.sh run"? 4 minutes ago? ? ? Up 4 minutes? ? ? ? 8080/tcp? ? ? ? ? ? inspiring_ardinghelli復(fù)制代碼
按容器名稱過濾:docker ps -f name=inspiring_ardinghelli
[root@vostro harbor]# docker ps -f name=inspiring_ardinghelliCONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? ? ? ? ? ? COMMAND? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? NAMES11548ac31116? ? ? ? tomcat:9.0.26-jdk8-openjdk? "catalina.sh run"? 7 minutes ago? ? ? Up 7 minutes? ? ? ? 8080/tcp? ? ? ? ? ? inspiring_ardinghelli復(fù)制代碼
按鏡像過濾吃嘿,這種過濾再細(xì)分有三種:
a. 按鏡像名和TAG過濾:docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk
b. 按鏡像ID過濾:docker ps -f ancestor=4965bfab1881
c. 按照鏡像摘要信息過濾:docker ps -f ancestor=tomcat@sha256:67a9904e3ceb03abc50db7b374db7362f7e44d08a41488dd24c2bb14df8989a3
鏡像的摘要信息如何獲取呢祠乃?執(zhí)行命令docker inspect tomcat:9.0.26-jdk8-openjdk可以獲取鏡像的詳情,如下圖所示兑燥,紅框中就是摘要信息:
按容器狀態(tài)過濾:docker ps -f status=running亮瓷,狀態(tài)有這些:created, restarting, running, removing, paused, exited, dead
還有其他的過濾條件,不過不常用到降瞳,如下圖:
信息獲取
查看容器所占硬盤空間:docker ps -s
上圖紅框中就是容器資源占用情況嘱支,508MB表示:鏡像大小+容器自身大小,40KB表示容器自身所占資源大姓跫ⅰ除师;
查看容器信息時(shí)只看某些字段,例如只看容器ID扔枫、鏡像汛聚、容器名稱這三列:docker ps --format "table {{.ID}}: {{.Image}}: {{.Names}}"
[root@vostro harbor]# docker ps --format "table {{.ID}}: {{.Image}}: {{.Names}}"CONTAINER ID: IMAGE: NAMES11548ac31116: tomcat:9.0.26-jdk8-openjdk: inspiring_ardinghelli21c0499ccc76: nginx: strange_zhukovsky復(fù)制代碼
下圖展示了所有的列的名稱:
如下圖紅框所示,當(dāng)字段內(nèi)容過長時(shí)短荐,展示的是部分內(nèi)容倚舀,如果想查看完整信息請(qǐng)使用docker ps --no-trunc
在使用docker history命令查看鏡像的構(gòu)建信息時(shí),也會(huì)因?yàn)閮?nèi)容過長而被省略忍宋,如下圖痕貌,此時(shí)也能用--no-trunc參數(shù)看到被省略的信息:
組合使用
只顯示Tomcat容器的ID字段:docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q
[root@vostro harbor]# docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q11548ac31116復(fù)制代碼
上面的命令可以得到Tomcat容器的ID字段,如果我們想停止該容器糠排,將上述命令和docker stop組合起來使用即可:docker stop $(docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q)
[root@vostro harbor]# docker stop $(docker ps -f ancestor=tomcat:9.0.26-jdk8-openjdk -q)11548ac31116[root@vostro harbor]# docker ps -aCONTAINER ID? ? ? ? IMAGE? ? ? ? ? ? ? ? ? ? ? ? COMMAND? ? ? ? ? ? ? ? ? CREATED? ? ? ? ? ? STATUS? ? ? ? ? ? ? ? ? ? ? ? PORTS? ? ? ? ? ? ? NAMES11548ac31116? ? ? ? tomcat:9.0.26-jdk8-openjdk? "catalina.sh run"? ? ? ? About an hour ago? Exited (143) 43 seconds ago? ? ? ? ? ? ? ? ? ? ? inspiring_ardinghelli21c0499ccc76? ? ? ? nginx? ? ? ? ? ? ? ? ? ? ? ? "nginx -g 'daemon of…"? 2 hours ago? ? ? ? Up 2 hours? ? ? ? ? ? ? ? ? ? 80/tcp? ? ? ? ? ? ? strange_zhukovsky復(fù)制代碼
可見tomcat容器已經(jīng)停止芯侥。