如何刪除Docker映象 容器和持久卷

2021-08-21 05:14:18 字數 3792 閱讀 9622

刪除docker容器

刪除持久卷

參考文件

使用docker後,server上累積越來越多沒用的docker映象、容器和持久卷,會占用大量的磁碟空間。

下面描述了如何通過docker命令來刪除docker映象、容器和持久卷。

在docker root directory下(通常是/var/lib/docker, 或通過docker info | grep -i root檢視)存在以下目錄:

以docker 17.03.2為例:

docker

├── containers # 存放docker容器,子目錄名為containter_id

├── image

├── network

├── overlay # 存放docker映象的真正資料,占用磁碟空間最大

├── plugins

├── swarm

├── tmp

├── trust

└── volumes # 存放持久卷資訊

可以通過執行du sh *檢視上面各個目錄占用磁碟空間大小。

dangling 意為沒被任何乙個容器所關聯。

刪除全部dangling的映象、容器、持久卷和網路:

docker system prune
如果想刪除全部已經停止掉的容器和全部沒用的映象(不僅僅是dangling的),加上-a引數:

docker system prune -a
列出全部docker映象:

docker images -a
刪除指定的乙個或多個docker映象:

docker

rmiimage

[image...]

dangling映象指的是映象的層沒有屬於任何乙個打上標籤的映象。可以為dangling映象打上標籤,或將它們刪除。

列出dangling映象:

docker images -f dangling=true
刪除dangling映象:

docker images purge
通過docker imagesgrep命令可以根據映象名稱和標籤來篩選docker映象,再加上awk命令就可以來刪除符合條件的docker映象。

列出映象名包含k8s.gcr.io的映象:

docker images -a | grep "k8s.gcr.io"
列出映象名包含k8s.gcr.io,且映象標籤為v1.10.3的映象:

docker images -a | grep "k8s.gcr.io" | grep "v1.10.3"
刪除映象名稱包含busybox的映象(乙個或多個):

docker images -a | grep "busybox" | awk '' | xargs docker rmi
其中awk ''用來擷取第3列的image_id,然後再將image_id作為引數傳給docker rmi來刪除指定的映象。

docker images命令支援通過-a引數列出全部docker映象,並支援通過-q只返回映象的image_id。

列出全部映象:

docker images -a
刪除全部映象:

docker rmi $(docker images -a -q)
docker ps支援通過-a引數列出全部docker容器(包括已經停止的容器):

docker ps -a
刪除指定的乙個或多個容器:

docker rm container_name_or_container_id [container_name_or_container_id]
docker run命令中通過-rm命令設定在容器退出後自動刪除該容器:

docker ps命令中通過-f引數可以來過濾查詢出來的容器。

列出全部已經退出的容器:

docker ps -a

-f status=exited

刪除全部已經退出的容器:

docker rm $(docker ps -a

-f status=exited -q)

列出狀態為exited或created的容器:

docker ps -a

-f status=exited -f status=created

刪除狀態為exited或created的容器:

docker rm $(docker ps -a

-f status=exited -f status=created -q)

通過docker psgrep來篩選docker容器,再加上awk命令就可以來刪除符合條件的docker容器。

列出關鍵字包含busybox的容器:

docker ps -a | grep "busybox"
刪除關鍵字包含busybox的容器(乙個或多個):

# 停止容器

docker ps | grep "busybox" | awk '' | xargs docker stop

# 刪除容器

docker ps -a | grep "busybox" | awk '' | xargs docker rm

其中awk ''用來擷取第1列的container_id,然後再將container_id作為引數傳給docker stop來停止容器,傳給docker rm來刪除容器。

列出全部容器:

docker ps -a
停止並刪除全部容器:

docker stop $(docker ps -q)

docker rm $(docker ps -a -q)

列出持久卷:

docker volume ls
刪除持久卷:

docker volume rm volume [volume...]
dangling持久卷就是沒有被任何容器關聯的持久卷。

列出dangling持久卷:

docker volume ls -f dangling=true
刪除dangling持久卷:

docker volume prune
刪除容器及其持久卷(只對未命名持久卷有效):

docker rm -v container_name

Docker刪除容器和映象

docker刪除容器和映象命令總結 1 stop所有的容器 docker stop docker ps a q 2 刪除容器 docker rm image id 或容器名 3 刪除所有容器 docker rm docker ps a q 4 刪除映象 docker rmi image id 或容器...

docker刪除容器和映象

刪除不用映象 docker image prune a f 刪除不用容器 docker container prune f 查詢所有的容器,過濾出exited狀態的容器,列出容器id,刪除這些容器 sudo docker rmdocker ps a grep exited awk 刪除所有未執行的容...

Docker刪除容器和映象

先列出有哪些容器 列出所有的 docker ps a 顯示所有容器 docker ps a 只顯示容器id docker ps q 要先暫停容器,才能刪除 暫停所有容器 docker stop docker ps aq 暫停單個容器 docker stop container id 刪除容器 刪除所...