docker info 命令讲解

docker info 命令用于显示有关 Docker 系统的详细信息,包括 Docker 配置、版本、容器运行状况、存储驱动、网络设置等。它提供了一个全面的概览,有助于用户了解当前 Docker 环境的状态。下面是对 docker info 输出中的各个字段的解释。

docker info 命令输出的常见字段及其解释:

  1. Containers

    • Running: 当前正在运行的容器数量。
    • Paused: 当前暂停的容器数量。
    • Stopped: 当前停止的容器数量。

    这些字段展示了系统上容器的状态和数量。

  2. Images

    • 显示本地镜像的数量。
  3. Server Version

    • 显示当前 Docker 引擎的版本。
  4. Storage Driver

    • 显示 Docker 使用的存储驱动。常见的存储驱动包括 overlay2aufsbtrfszfs 等。存储驱动决定了容器的文件系统如何在主机和容器之间共享和隔离。
  5. Logging Driver

    • Docker 使用的日志记录驱动,通常是 json-file 或 syslog
  6. Cgroup Driver

    • 当前使用的 cgroup 驱动程序(如 cgroupfs 或 systemd)。
    • Cgroup Driver: cgroupfs 表示 Docker 使用 cgroupfs 来管理 cgroup 资源。
  7. Plugins

    • Volume Plugins: 显示可用的卷插件。
    • Network Plugins: 显示可用的网络插件。
    • Authorization Plugins: 显示可用的授权插件。
  8. Swarm

    • 显示 Docker Swarm 集群的状态。包括是否启用了 Swarm 模式,以及当前集群中的节点数量。
  9. Runtimes

    • 列出 Docker 支持的运行时。常见的运行时包括 runc(默认的容器运行时)和其他可能安装的容器运行时。
  10. Default Runtime

    • Docker 默认使用的容器运行时。
  11. Kernel Version

    • 主机操作系统的内核版本。
  12. Operating System

    • Docker 主机运行的操作系统及其版本信息。
  13. OSType

    • Docker 主机的操作系统类型,如 linux 或 windows
  14. Architecture

    • 显示主机的架构类型,例如 x86_64 或 arm64
  15. CPUs

    • 显示 Docker 主机上可用的 CPU 核心数量。
  16. Total Memory

    • 显示主机上的总内存大小。
  17. Name

    • Docker 主机的名称。
  18. ID

    • Docker 主机的唯一标识符。
  19. Docker Root Dir

    • Docker 的根目录,包含 Docker 数据和配置文件。
  20. Debug Mode

    • 是否启用了调试模式。启用时,会显示更多的调试信息。
  21. Registry

    • 当前使用的 Docker 注册表。默认是 Docker Hub。
  22. Insecure Registries

    • 如果有任何不安全的 Docker 注册表地址,会显示在此列表中。
  23. Live Restore Enabled

    • 是否启用了 Docker 守护进程的“实时恢复”功能,这意味着 Docker 在守护进程重启时可以继续运行容器。
  24. HTTP ProxyHTTPS Proxy

    • 如果 Docker 配置了 HTTP 或 HTTPS 代理,这些字段会显示代理的地址。
  25. No Proxy

    • 配置的代理排除列表。

示例输出及解释:

# docker info
Containers: 3
 Running: 1
 Paused: 0
 Stopped: 2
Images: 12
Server Version: 20.10.7
Storage Driver: overlay2
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
Plugins:
 Volume Plugins: local
 Network Plugins: bridge, host, macvlan, none
 Swarm: active
 Runtimes: runc
 Default Runtime: runc
Kernel Version: 5.4.0-80-generic
Operating System: Ubuntu 20.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 16GiB
Name: dockerhost
ID: XXXXXX
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Insecure Registries:
Live Restore Enabled: true

详细字段解释

  • Containers: 显示系统中容器的状态。
  • Images: 本地镜像数量。
  • Server Version: Docker 的版本号。
  • Storage Driver: 使用的存储驱动类型。
  • Cgroup Driver: 这里是 cgroupfs,表示 Docker 使用 cgroupfs 来管理资源。
  • Plugins: 列出启用的插件(如存储、网络插件)。
  • Swarm: 当前 Docker Swarm 的状态,显示是否处于活动状态。
  • Runtimes: 可用的容器运行时,这里是 runc
  • Kernel Version: 主机内核的版本。
  • Operating System: Docker 主机的操作系统及其版本。
  • CPUs: 主机上可用的 CPU 核心数。
  • Total Memory: 主机的总内存。
  • Docker Root Dir: Docker 存储和数据目录的位置。
  • Registry: 当前配置的 Docker 镜像注册表地址。
  • Live Restore Enabled: 是否启用了 Docker 守护进程重启时容器的持续运行。

cgroupfs systemd 这两个驱动的区别:

cgroupfssystemd 是两种不同的 Cgroup 驱动,它们分别管理 Linux 系统中的控制组(Cgroups)资源。Cgroups 是一种 Linux 内核机制,用于将进程组织成层次结构,以便控制和限制资源的使用。Docker 在运行容器时,使用 Cgroup 驱动来管理容器的资源(如 CPU、内存等)。

1. cgroupfs 驱动

  • 定义: cgroupfs 是一种直接与 Linux 内核的 Cgroup 子系统进行交互的驱动,它通过挂载 Cgroup 文件系统(通常是 /sys/fs/cgroup)来管理容器的资源限制。

  • 工作原理:

    • cgroupfs 直接使用内核的 Cgroup 文件系统进行资源管理。
    • 它通过直接与 /sys/fs/cgroup 目录下的不同控制组进行交互来管理容器的资源使用。
    • 它不依赖于 systemd,因此可以在不使用 systemd 的系统上运行。
  • 优点:

    • 对于不使用 systemd 的系统(例如某些旧版或定制的 Linux 发行版),cgroupfs 是一个独立且可工作的选择。
    • 配置相对简单,可以直接通过 Cgroup 文件系统来操作资源。
  • 缺点:

    • cgroupfs 不依赖于系统初始化管理工具(如 systemd),在多种服务管理和资源管理的集成上可能稍显不足。

2. systemd 驱动

  • 定义: systemd 驱动使用 systemd 作为 Cgroup 管理工具。systemd 是现代 Linux 系统的初始化系统和服务管理器,它提供了对 Cgroup 的更高层次的抽象和管理功能。

  • 工作原理:

    • systemd 将 Cgroup 作为其管理服务的一部分,通过它来控制和分配资源。
    • 它通过管理 /sys/fs/cgroup/systemd 目录下的 Cgroup 资源,来控制系统中的各个进程和容器资源。
    • 容器的资源限制(如 CPU、内存)由 systemd 进程及其子进程进行管理。
  • 优点:

    • systemd 提供了与其他系统服务(如日志、资源管理、服务启动等)的紧密集成。它能更好地协调和管理系统中的各个服务和容器。
    • 它能够管理跨多个控制组的资源(例如,跨服务和容器的资源限制),并且与容器外的资源管理更加统一。
    • 对于使用 systemd 的系统(如现代的 CentOS、Ubuntu、Debian 等),这种集成方式可以更好地与系统的资源管理机制协同工作。
  • 缺点:

    • systemd 依赖于 systemd 系统初始化工具,如果系统没有使用 systemd,那么 systemd 驱动无法工作。
    • 配置相对复杂,因为它依赖于系统的 systemd 服务和资源管理。

总结对比

特性cgroupfssystemd
管理工具直接通过 Cgroup 文件系统进行管理通过 systemd 管理容器和进程的资源
依赖性无需依赖 systemd,独立于 systemd依赖 systemd,只能在支持 systemd 的系统上使用
适用系统适用于不使用 systemd 的系统(如老旧的发行版)适用于现代使用 systemd 的系统(如最新的 Linux 发行版)
集成性更少的系统集成,资源管理相对简单与系统服务管理集成,资源管理更加一致
优点配置简单,适用于旧系统或没有 systemd 的环境更强的资源管理能力,跨服务/容器资源限制
缺点不如 systemd 集成系统的资源管理依赖 systemd,不能在不支持的系统上使用

总的来说,systemd 驱动在现代 Linux 系统中通常是首选,因为它提供了更好的集成性和资源管理功能。而 cgroupfs 驱动更适合一些不使用 systemd 的环境,或者对于资源管理要求不高的场景。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GHY云端大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值