刪除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 images
和grep
命令可以根據映象名稱和標籤來篩選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 ps
和grep
來篩選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 刪除容器 刪除所...