Docker 清除缓存、日志
命令介绍
查看docker各类型文件占用情况
docker system df
Docker使用的 4 种磁盘类型:
- Images: 所有镜像占用的空间,包括拉取的镜像、本地构建的镜像
- Containers: 运行中的容器所占用的空间(没运行就不占空间),其实就是每个容器读写层的空间
- Local Volumes: 本地数据卷的空间
- Build Cache: 镜像构建过程中,产生的缓存数据
说明:最后一列RECLAIMABLE是指可清理的空间
# 查看单个image镜像、container容器空间占用情况
docker system df -v
查看磁盘使用情况(服务器内存大小)
# 查看全部磁盘使用情况
df -h
# 查看docker的使用情况
df -h /var/lib/docker
docker使用目录说明
- 如果容器使用自己的文件系统保存了数据,那么这些数据就会写到此目录下:
/var/lib/docker/overlay2
- 如果容器使用了默认的日志模式,那么该容器的日志会以 JSON 形式保存在此目录下:
/var/lib/docker/containers/<容器ID>
清理docker日志文件
- 查看所有容器下日志的大小
find /var/lib/docker/containers/ -name *-json.log |xargs du -sh
- 将某个日志文件清零
truncate -s 0 /var/lib/docker/containers/621bd2d89001e96a7802b759109701bcb4efe7fe68e5658683d686746e4c62f3/621bd2d89001e96a7802b759109701bcb4efe7fe68e5658683d686746e4c62f3-json.log
- 写个空文件到容器日志中
cat /dev/null > /var/lib/docker/containers/621bd2d89001e96a7802b759109701bcb4efe7fe68e5658683d686746e4c62f3/621bd2d89001e96a7802b759109701bcb4efe7fe68e5658683d686746e4c62f3-json.log
清理docker
# 用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
docker system prune
# 用于删除没有容器的Docker镜像。注意,这两个命令会把暂时关闭的容器,以及暂时没有用到的Docker镜像都删除
docker system prune -a
docker服务相关
# 启动docker服务
systemctl start docker
# 重启守护进程
systemctl daemon-reload
# 重启docker服务
systemctl restart docker
# 停止docker服务
systemctl stop docker