跳转至

Containerd 运维实践指南

安装与配置

安装 containerd

# Ubuntu/Debian
apt-get update
apt-get install -y containerd

# CentOS/RHEL
yum install -y containerd

# 启动 containerd 服务
systemctl enable containerd
systemctl start containerd

配置 containerd

默认配置文件位置:/etc/containerd/config.toml

version = 2
[plugins."io.containerd.grpc.v1.cri"]
  sandbox_image = "registry.k8s.io/pause:3.6"
  [plugins."io.containerd.grpc.v1.cri".containerd]
    default_runtime_name = "runc"
    [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
      runtime_type = "io.containerd.runc.v2"

命令行工具使用

ctr 命令使用

ctr 是 containerd 的官方命令行工具,用于与 containerd 守护进程交互。

镜像管理

# 拉取镜像
ctr image pull docker.io/library/nginx:latest

# 列出镜像
ctr image ls

# 删除镜像
ctr image rm docker.io/library/nginx:latest

# 标记镜像
ctr image tag docker.io/library/nginx:latest my-nginx:latest

容器管理

# 创建容器
ctr container create docker.io/library/nginx:latest nginx-container

# 列出容器
ctr container ls

# 启动容器
ctr task start nginx-container

# 查看容器进程
ctr task ls

# 停止容器
ctr task kill nginx-container

# 删除容器
ctr container rm nginx-container

命名空间管理

# 创建命名空间
ctr namespace create my-namespace

# 列出命名空间
ctr namespace ls

# 在指定命名空间操作
ctr -n my-namespace image pull docker.io/library/nginx:latest

nerdctl 命令使用

nerdctl 是一个与 Docker CLI 兼容的命令行工具,使用方式与 docker 命令类似。

镜像管理

# 拉取镜像
nerdctl pull nginx:latest

# 列出镜像
nerdctl images

# 删除镜像
nerdctl rmi nginx:latest

# 构建镜像
nerdctl build -t my-app:latest .

# 指定 namespace 查看
nerdctl --namespace k8s.io images

# 指定 namespace 导入镜像
nerdctl --namespace k8s.io load -i vllm-0.7.2-2204-py310-cu124-lixie.tar

容器管理

# 运行容器
nerdctl run -d --name nginx nginx:latest

# 列出容器
nerdctl ps

# 停止容器
nerdctl stop nginx

# 删除容器
nerdctl rm nginx

# 查看容器日志
nerdctl logs nginx

网络管理

# 创建网络
nerdctl network create my-network

# 列出网络
nerdctl network ls

# 删除网络
nerdctl network rm my-network

常见问题排查

日志查看

# 查看 containerd 服务日志
journalctl -u containerd

# 查看容器日志
ctr task logs nginx-container

性能监控

# 查看容器资源使用情况
ctr task metrics nginx-container

# 查看 containerd 进程状态
ps aux | grep containerd

故障排查

  1. 服务无法启动
  2. 检查配置文件语法
  3. 查看系统日志
  4. 确认端口占用情况

  5. 容器无法创建

  6. 检查镜像是否存在
  7. 验证存储空间
  8. 检查权限设置

  9. 网络问题

  10. 检查 CNI 配置
  11. 验证网络插件状态
  12. 检查防火墙规则

最佳实践

  1. 定期清理未使用的镜像和容器
  2. 使用命名空间隔离不同环境
  3. 配置适当的资源限制
  4. 保持 containerd 版本更新
  5. 定期备份重要数据
  6. 监控系统资源使用情况

安全建议

  1. 使用非 root 用户运行容器
  2. 定期更新系统和容器镜像
  3. 限制容器权限
  4. 使用安全的基础镜像
  5. 实施网络隔离
  6. 配置审计日志
回到页面顶部