参考
https://mp.weixin.qq.com/s/ZKoO041TqyR2guVooPegrg从行业趋势来看,Docker 已经和 Kubernetes 社区渐行渐远,以?Containerd?为代表的实现了?CRI?接口的容器运行时将会受到 Kubernetes 的青睐。
但纯粹使用 Containerd 还是有诸多困扰,比如不方便通过 CLI 来创建管理容器,有了?nerdctl?这个 CLI 工具,就就可以填补 Containerd 易用性的空缺现有 CLI 的不足
虽然 Docker 能干的事情,现在
Containerd
都能干,但Containerd
还有一个非常明显的缺陷:CLI 不够友好。它无法像 Docker 和 Podman 一样通过一条简单的命令启动一个容器,它的两个 CLI 工具 ctr 和 crictl都无法实现这么一件非常简单的需求,而这个需求是大多数人都需要的,我总不能为了在本地测试容器而专门部署一个 Kubernetes 集群吧?ctr 的设计对人类不太友好,例如缺少以下这些和 Docker 类似的功能:
docker run -p <PORT>
docker run --restart=always
通过凭证文件
~/.docker/config.json
来拉取镜像
docker logs
除此之外还有一个 CLI 工具叫
crictl
,和ctr
一样不太友好。为了解决这个痛点,Containerd 官方推出了一个新的 CLI 叫 nerdctl。nerdctl 的使用体验和 docker 一样顺滑
##安裝nerdctl
你可以从?https://github.com/containerd/nerdctl中下载最新的可执行文件,每一个版本都有两种可用的发行版:
`nerdctl-
-linux-amd64.tar.gz?: 只包含 nerdctl。 `nerdctl-full-
-linux-amd64.tar.gz?: 包含了 nerdctl 和相关依赖组件(containerd, runc, ###CNI, …)。 如果你已经安装了 Containerd,只需要选择前一个发行版,否则就选择完整版。
这里选择完整版nerdctl-full-0.7.3-linux-amd64.tar.gz
cd /optwget https://github.com/containerd/nerdctl/releases/download/v0.7.3/nerdctl-full-0.7.3-linux-amd64.tar.gz
tar -C /usr/local -xzf nerdctl-full-0.7.3-linux-amd64.tar.gz
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
sed -i “s#k8s.gcr.io#registry.aliyuncs.com/k8sxio#g” /etc/containerd/config.toml
sed -i “s/systemd_cgroup = false/systemd_cgroup = true/g” /etc/containerd/config.toml
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
sed -i “s#https://registry-1.docker.io#${REGISTRY_MIRROR}#g" /etc/containerd/config.toml
mkdir -p /data/containerd-data-root
sed -i “s#/var/lib/containerd#/data/containerd-data-root#g” /etc/containerd/config.toml
sed -i “s#oom_score = 0#oom_score = -999#g” /etc/containerd/config.toml
sed -i “/containerd.runtimes.runc.options/a\ SystemdCgroup = true” /etc/containerd/config.toml
sed -i “s#/opt/cni/bin#/usr/local/libexec/cni#g” /etc/containerd/config.toml
1 | 添加私有仓库harbor---自定义--可选 |
systemctl daemon-reload
systemctl enable –now containerd
systemctl status containerd
containerd –version
###普通用户Rootless
切换到普通用户
比如su - admin
执行 containerd-rootless-setuptool.sh install
强烈建议在Rootless模式下启用cgroup v2
请参阅https://rootlesscontaine.rs/getting-started/common/cgroup2/
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 1209453173@qq.com