Docker 清除缓存、日志

发布时间 2023-03-31 10:37:57作者: 寒爵

命令介绍

查看docker各类型文件占用情况

docker system df

Docker使用的 4 种磁盘类型:

  • Images: 所有镜像占用的空间,包括拉取的镜像、本地构建的镜像
  • Containers: 运行中的容器所占用的空间(没运行就不占空间),其实就是每个容器读写层的空间
  • Local Volumes: 本地数据卷的空间
  • Build Cache: 镜像构建过程中,产生的缓存数据

image
说明:最后一列RECLAIMABLE是指可清理的空间

# 查看单个image镜像、container容器空间占用情况
docker system df -v

查看磁盘使用情况(服务器内存大小)

# 查看全部磁盘使用情况
df -h

# 查看docker的使用情况
df -h /var/lib/docker

image

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