kubernetes自1.24之后,默认的容器运行时由docker变更为containerd。Containerd 是一个高效的容器运行时,它提供了一套完整的容器生命周期管理工具,使得开发者和运维人员能够更加轻松地管理容器。
基本命令
- 检查版本
bash
containerd --version
- 启动 Containerd 服务
bash
sudo systemctl start containerd
- 停止 Containerd 服务
bash
sudo systemctl stop containerd
- 查看 Containerd 服务状态
bash
sudo systemctl status containerd
使用 ctr 命令行工具
- 列出所有命名空间
bash
sudo ctr namespaces list
- 创建命名空间
bash
sudo ctr namespaces create my-namespace
- 拉取镜像
bash
sudo ctr images pull docker.m.daocloud.io/library/hello-world:latest
- 列出所有镜像
bash
sudo ctr images list
- 导出镜像
bash
sudo ctr images export hello-world.tar docker.m.daocloud.io/library/hello-world:latest
- 导入镜像
bash
sudo ctr images import hello-world.tar
- 创建容器
bash
sudo ctr run --rm --tty docker.m.daocloud.io/library/hello-world:latest my-container
- 列出所有容器
bash
sudo ctr containers list
- 启动容器
bash
sudo ctr tasks start my-container
- 停止容器
bash
sudo ctr tasks stop my-container
- 删除容器
bash
sudo ctr containers delete my-container
使用 crictl 命令行工具
- 查看所有 Pod
bash
sudo crictl pods
- 查看所有容器
bash
sudo crictl ps
- 拉取镜像
bash
sudo crictl pull docker.m.daocloud.io/library/hello-world:latest
- 列出所有镜像
bash
sudo crictl images
- 运行容器
bash
sudo crictl runp pod-config.jsonsudo crictl create pod-id container-config.json pod-config.jsonsudo crictl start container-id
- 停止容器
bash
sudo crictl stop container-id
- 删除容器
bash
sudo crictl rm container-id
日志查看
- 查看容器日志
bash
sudo ctr tasks logs my-container
- 查看 containerd 服务日志
bash
sudo journalctl -u containerd
常见问题处理
-
无法启动容器
-
检查镜像是否存在
bash sudo ctr images list -
检查 containerd 服务状态
bash sudo systemctl status containerd -
镜像拉取失败
-
检查网络连接
-
确认镜像名称和标签是否正确
-
容器状态异常
-
使用
ctr tasks list查看容器状态 - 使用
ctr tasks inspect查看容器详细信息