docker系列【3】docker问题排查

一、简介

Docker 问题排查是一个系统性的过程,涉及到多个方面。需要一些排查技巧帮助我们更好的去进行问题排查与解决

二、docker 问题排查

1.docker 磁盘超负荷 

1.1 通过 df -h 查看 系统磁盘使用详情

查看是否是docker造成的磁盘超负荷

 1.2 通过docker info 查询docker 根目录

1.3  查看根目录磁盘占用情况

df -h /var/lib/docker

通过

du -d1 -h /var/lib/docker/containers | sort -h 

列出 /var/lib/docker/containers 目录下每个子目录的磁盘使用情况,并按大小排序,这有助于识别占用空间较大的容器

可以采取以下步骤进行清理:

  1. 列出所有容器

    • 使用 docker ps -a 列出所有容器,包括未运行的。
  2. 停止并删除未使用的容器

    • 对于不再需要的容器,使用 docker stop <container_id> 停止容器,然后使用 docker rm <container_id> 删除容器。
  3. 清理悬空镜像

    • 使用 docker image prune 清理悬空镜像(未被任何容器使用的镜像)。
  4. 删除未使用的镜像

    • 使用 docker image ls 列出所有镜像,然后根据需要使用 docker rmi <image_id> 删除不再使用的镜像。
  5. 清理卷和网络

    • 使用 docker volume prune 清理未使用的卷,使用 docker network prune 清理未使用的网络。
  6. 检查和删除隔离容器

    • 隔离容器是那些在创建过程中失败的容器,使用 docker ps -f "status=exited" 列出这些容器并删除。
  7. 清理旧的或未使用的构建缓存

    • 如果使用 Docker 构建镜像,旧的构建缓存可能会占用空间,可以在构建时使用 --no-cache 选项。
  8. 手动清理容器文件

    • 如果上述方法不能解决问题,可以手动检查 /var/lib/docker/containers/ 目录下每个容器的文件,删除不必要的文件。
  9. 扩展存储或清理其他目录

    • 如果 /var/lib/docker 目录整体占用空间很大,可能需要扩展存储容量或清理其他子目录,如镜像和卷的存储目录。
  10. 使用 Docker 系统 prune 命令

    • docker system prune 可以删除所有未使用的容器、镜像、网络和卷,释放空间。注意,这将删除所有悬空资源,使用时要小心。
1.4 查看镜像与容器磁盘的占用

docker  system df  -v

  • ype: 类型,同样是 Images、Containers、Volumes 或 Networks。
  • REPOSITORY: 镜像的仓库名称。
  • TAG: 镜像的标签。
  • IMAGE ID: 镜像的唯一标识符。
  • CREATED: 镜像、容器或卷的创建时间。
  • SIZE: 对于镜像和容器,表示它们占用的空间大小;对于卷和网络,可能显示为 "Shared"(共享)或实际大小。
  • SHARED SIZE: 共享大小,表示多个容器或镜像共享的空间大小。
  • UNIQUE SIZE: 唯一大小,表示不与其他镜像或容器共享的空间大小。
  • NUMBER OF ITEM TYPES: 特定类型的对象数量。
  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值