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 =========================="