Docker 查看磁盘占用

在使用 Docker 运行容器时,我们经常需要了解容器所占用的磁盘空间,以便及时清理不必要的文件或者调整容器的磁盘配额。本文将介绍如何使用 Docker 命令和工具查看磁盘占用,并给出相应的代码示例。

Docker 命令

Docker 提供了一系列的命令来查看容器和镜像的磁盘占用情况。

查看容器磁盘占用

要查看特定容器的磁盘占用情况,可以使用 Docker 命令 docker container inspect。该命令会返回一个包含容器详细信息的 JSON 对象,其中包括了卷的挂载路径和容器使用的磁盘空间。

下面是一个示例代码,用于查看名为 my_container 的容器的磁盘占用情况:

docker container inspect --format='{{json .Mounts}}' my_container | jq '.[].Source'

上述代码首先使用 docker container inspect 命令获取容器的详细信息,并通过 --format 参数指定返回的是 JSON 格式的 Mounts 字段。然后使用 jq 工具提取出每个卷的挂载路径。

查看镜像磁盘占用

要查看镜像的磁盘占用情况,可以使用 Docker 命令 docker image inspect。类似于查看容器磁盘占用的方法,该命令也会返回一个 JSON 对象,其中包含了镜像所使用的磁盘空间。

下面是一个示例代码,用于查看名为 my_image 的镜像的磁盘占用情况:

docker image inspect --format='{{.Size}}' my_image

上述代码使用 docker image inspect 命令获取镜像的详细信息,并通过 --format 参数指定返回的是镜像的大小。

Docker 工具

除了使用 Docker 命令,还可以使用一些第三方工具来更方便地查看磁盘占用情况。

使用 Docker-Squash

Docker-Squash 是一个用于优化镜像大小的工具,它可以将多个镜像层合并为一个,从而减少磁盘占用。除了优化镜像大小,Docker-Squash 还提供了查看镜像磁盘占用的功能。

下面是一个示例代码,用于使用 Docker-Squash 查看名为 my_image 的镜像的磁盘占用情况:

dockersquash -t my_image

上述代码会输出一个包含每个镜像层大小的列表,以及总体的镜像大小。

使用 GoTTY

GoTTY 是一个将命令行界面转换为 Web 终端的工具,它可以让我们在浏览器中通过 Web 界面查看容器的终端输出。除此之外,GoTTY 还提供了查看容器磁盘占用的功能。

下面是一个示例代码,用于使用 GoTTY 查看名为 my_container 的容器的磁盘占用情况:

gotty docker exec -it my_container du -sh /

上述代码会在浏览器中打开一个 Web 终端,然后在该终端中执行 du -sh / 命令,以获取根文件系统的总体磁盘占用情况。

流程图

下面是一个使用 Mermaid 语法绘制的流程图,展示了查看容器和镜像磁盘占用的整体流程:

flowchart TD
    subgraph Docker
        A[选择容器或镜像] --> B[使用 Docker 命令或工具]
        B --> C[获取容器或镜像的详细信息]
        C --> D[提取磁盘