Ubuntu 安装 containerd
什么是 containerd
containerd 是一个高性能、专注于容器生命周期管理的容器运行时(Container Runtime),是 Kubernetes 默认使用的容器运行时。
containerd 是 Docker 的子项目演化而来。
containerd 最初是 Docker 内部的一部分,用来负责容器的生命周期管理。
后来(2017年),Docker 公司(当时是 Docker Inc.)把 containerd 独立出来开源,交给 CNCF(Cloud Native Computing Foundation)管理,成为一个中立的社区项目。
所以,Docker 使用 containerd 作为它的底层运行核心,而 containerd 自己也可以单独运行,不依赖 Docker。
安装 containerd
1. 安装
sudo apt update
sudo apt install -y containerd
设置开机自启动
sudo systemctl enable containerd
2. 配置 containerd 默认配置文件
先备份原来的默认配置文件
sudo cp /etc/containerd/config.toml /etc/containerd/config.toml.bak
sudo containerd config default | sudo tee /etc/containerd/config.toml > /dev/null
3. 开启 cgroup 驱动(可选,如果你使用 Kubernetes 需要设置与其一致)
编辑 /etc/containerd/config.toml 文件,将 SystemdCgroup 设置为 true
sudo vim /etc/containerd/config.toml
SystemdCgroup = true
保存后,重启 containerd
sudo systemctl restart containerd
4. 配置镜像源加速器
添加如下文件:
mkdir -p /etc/containerd/certs.d/docker.io/
sudo vim /etc/containerd/certs.d/docker.io/hosts.toml
文件内容如下:
[host."https://dockerproxy.com"]capabilities = ["pull", "resolve"][host."https://docker.m.daocloud.io"]capabilities = ["pull", "resolve"][host."https://reg-mirror.qiniu.com"]capabilities = ["pull", "resolve"][host."https://registry.docker-cn.com"]capabilities = ["pull", "resolve"][host."http://hub-mirror.c.163.com"]capabilities = ["pull", "resolve"][host."https://docker.hpcloud.cloud"]capabilities = ["pull", "resolve"][host."https://docker.unsee.tech"]capabilities = ["pull", "resolve"][host."https://docker.1panel.live"]capabilities = ["pull", "resolve"][host."http://mirrors.ustc.edu.cn"]capabilities = ["pull", "resolve"][host."https://docker.chenby.cn"]capabilities = ["pull", "resolve"][host."http://mirror.azure.cn"]capabilities = ["pull", "resolve"][host."https://dockerpull.org"]capabilities = ["pull", "resolve"][host."https://dockerhub.icu"]capabilities = ["pull", "resolve"][host."https://hub.rat.dev"]capabilities = ["pull", "resolve"]
containerd 状态相关命令
查看 containerd 版本:containerd --version
启动服务:sudo systemctl start containerd
停止服务:sudo systemctl stop containerd
重启服务:sudo systemctl restart containerd
查看状态:sudo systemctl status containerd
设置开机自启:sudo systemctl enable containerd
禁用开机自启:sudo systemctl disable containerd
重新加载配置:sudo systemctl daemon-reload
安装 nerdctl
nerdctl 是一个命令行工具(CLI),用来管理 containerd 容器运行时,它的设计目标是尽可能兼容 Docker 的命令用法,让你可以用和 Docker 几乎一样的方式来管理容器,但底层不再依赖 dockerd,而是直接使用 containerd。
1. 安装 nerdctl
下载地址:https://github.com/containerd/nerdctl/tags
把下载的文件上传到 Ubuntu 的 /usr/local/nerdctl 目录中并解压
把 nerdctl 放在系统命令目录中
sudo mv /usr/local/nerdctl/nerdctl /usr/local/bin/
sudo chmod +x /usr/local/bin/nerdctl
2. 使用 nerdctl
测试拉取镜像
nerdctl pull nginx
拉取镜像中
nerdctl 是在 containerd 中使用 Docker 的工具
Docker 命令 | nerdctl 命令 | 说明 |
---|---|---|
docker run | nerdctl run | 支持 |
docker pull | nerdctl pull | 支持 |
docker push | nerdctl push | 支持 |
docker ps | nerdctl ps | 支持 |
docker images | nerdctl images | 支持 |
docker exec | nerdctl exec | 支持 |
docker logs | nerdctl logs | 支持 |
docker stop / start | nerdctl stop / start | 支持 |
docker rm / rmi | nerdctl rm / rmi | 支持 |
docker build | ✅(需 nerdctl+buildkit) | 需要 buildkit 支持 |
docker network | ⚠️ 部分支持 | 仅支持 CNI 类型的网络 |
docker volume | ⚠️ 部分支持 | 有限制 |
docker-compose | ⚠️ 需要额外工具 | 可通过 nerdctl compose 使用,但格式和特性有限 |