Docker存储空间清理

清理无用容器和镜像

1
docker system prune

该指令默认会清除所有如下资源:

  • 已停止的容器(container)
  • 未被任何容器所使用的卷(volume)
  • 未被任何容器所关联的网络(network)
  • 所有悬空镜像(image)。
    该指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
    添加 -a 或 –all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
    可以添加 -f 或 –force 参数用以忽略相关告警确认信息。
    指令结尾处会显示总计清理释放的空间大小。

清理日志

Docker容器的日志默认存储在主机的/var/lib/docker/containers/目录。

  • 删除某个容器的日志:

    1
    2
    # 删除某个容器的日志,[container_id]替换为容器的id
    echo " " > /var/lib/docker/containers/[container_id]/*-json.log
  • 使用脚本删除所有容器日志

    1. 创建脚本:clean_dockerlog.sh
      1
      2
      3
      4
      5
      6
      7
      8
      echo '
      #!/bin/sh
      logs=`find /var/lib/docker/containers/ -name *-json.log`
      for docker_log in $logs
      do
      echo " " > $docker_log
      done
      ' > clean_dockerlog.sh
    2. 执行脚本
      创建完脚本后,以后需要清理日志只需要执行sh clean_dockerlog.sh

    删除none镜像

    none是Docker产生的临时镜像,可以使用以下命令批量删除:

    1
    docker rmi $(docker images | grep "none" | awk '{print $3}')
坚持原创技术分享,您的支持将鼓励我继续创作!