
linuxkit/containerd本镜像基于 LinuxKit 项目的 containerd 包构建(源码路径:[***]),提供轻量级、可定制的 containerd 容器运行时环境。
containerd 是一个工业级容器运行时,专注于容器生命周期管理的核心功能。本镜像旨在将 containerd 与 LinuxKit 的轻量级、模块化特性结合,提供适用于资源受限环境的容器运行时支持,可作为独立容器运行时或集成到容器编排系统中。
docker run 命令)启动容器时需注意:containerd 需访问主机内核功能,因此需以特权模式运行,并挂载必要的系统目录。
bashdocker run -d \ --name linuxkit-containerd \ --privileged \ --restart always \ -v /var/lib/containerd:/var/lib/containerd \ # 持久化containerd数据 -v /run/containerd:/run/containerd \ # 运行时socket目录 -v /sys/fs/cgroup:/sys/fs/cgroup \ # cgroup支持(如需限制容器资源) linuxkit/containerd:latest
docker-compose 配置示例yamlversion: '3.8' services: containerd: image: linuxkit/containerd:latest container_name: linuxkit-containerd privileged: true restart: always volumes: - /var/lib/containerd:/var/lib/containerd - /run/containerd:/run/containerd - /sys/fs/cgroup:/sys/fs/cgroup # 可选:暴露metrics端口(如需监控) ports: - "1338:1338" # containerd metrics默认端口
containerd 的核心配置文件为 config.toml,默认路径为 /etc/containerd/config.toml。如需自定义配置,可通过挂载外部配置文件覆盖默认配置:
bashdocker run -d \ --name linuxkit-containerd \ --privileged \ -v /path/to/custom/config.toml:/etc/containerd/config.toml \ # 挂载自定义配置 -v /var/lib/containerd:/var/lib/containerd \ -v /run/containerd:/run/containerd \ linuxkit/containerd:latest
关键配置项示例(config.toml):
tomlversion = 2 # 根目录配置(数据存储路径) root = "/var/lib/containerd" # 状态目录(运行时状态文件) state = "/run/containerd" # 镜像仓库配置(如私有仓库) [plugins."io.containerd.grpc.v1.cri".registry.mirrors] [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] endpoint = ["[***]"] # Docker Hub镜像源 # 运行时配置(默认使用runc) [plugins."io.containerd.runtime.v2.task"] runtime = "io.containerd.runc.v2"
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
CONTAINERD_CONFIG | 自定义配置文件路径 | /etc/containerd/config.toml |
CONTAINERD_ROOT | 数据根目录(覆盖配置文件中的root) | /var/lib/containerd |
CONTAINERD_STATE | 状态目录(覆盖配置文件中的state) | /run/containerd |
CONTAINERD_LOG_LEVEL | 日志级别(debug/info/warn/error/fatal) | info |
示例:通过环境变量设置日志级别为debug
bashdocker run -d \ --name linuxkit-containerd \ --privileged \ -e CONTAINERD_LOG_LEVEL=debug \ -v /var/lib/containerd:/var/lib/containerd \ -v /run/containerd:/run/containerd \ linuxkit/containerd:latest
容器启动后,可通过 ctr(containerd命令行工具)验证功能:
进入容器:
bashdocker exec -it linuxkit-containerd sh
拉取测试镜像并运行容器:
bashctr images pull docker.io/library/busybox:latest ctr run -t --rm docker.io/library/busybox:latest test-container sh
若成功进入busybox容器的sh终端,表明containerd运行正常。
containerd 依赖内核命名空间、cgroup等功能,必须以 --privileged 模式运行。/var/lib/containerd 目录需挂载至主机,避免容器重启后数据丢失(如镜像、容器元数据)。containerd 最低内核要求),且启用必要内核模块(如overlay、netfilter)。containerd 自身资源(如CPU/内存),可通过 --cpus、--memory 参数配置(需挂载/sys/fs/cgroup)。-v /etc/cni/net.d:/etc/cni/net.d)。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务