df 檢查空間占用,經常會看到overlay2目錄層,但后面路徑是一串加密字符,與容器id是不一致的,可以用下面命令查詢
如:/var/lib/docker/overlay2/a3f0e0eee1e0cfb3d57924f522ac7342e85174f47b58efbd2a49101fc132ac86/merged
sudo docker inspect $(sudo docker ps|awk '{print $1}') |grep a3f0e0eee1e0cfb3d57924f522ac7342e85174f47b58efbd2a49101fc132ac86 -A 100|grep Hostname
無法刪除鏡像
Error response from daemon: conflict: unable to delete 6ec9a5a0fc9f (cannot be forced) - image has dependent child images
列出所有在指定 image 之后創建的 image 的父 image
sudo docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(sudo docker image ls -q --filter since=xxxxxx)
虛懸鏡像
sudo docker images -f dangling=true
sudo docker rmi $(sudo docker images -q -f dangling=true)
刪除所有未運行的容器(已經運行的刪除不了,未運行的就一起被刪除了)
sudo docker rm $(sudo docker ps -a -q)
根據容器的狀態,刪除Exited狀態的容器
sudo docker rm $(sudo docker ps -qf status=exited)
可以使用 docker containers prune 命令,刪除孤立的容器。
sudo docker container prune
清理容器輸出日志
docker system prune
#!/bin/sh
echo "==================== start clean docker containers logs =========================="
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "==================== end clean docker containers logs =========================="