ubuntu安装containerd,取代docker

发布于:2024-09-18 ⋅ 阅读:(15) ⋅ 点赞:(0)

最近项目需要上k8s,k8s从1.20开始弃用docker,用containerd进行取代,说一下containerd,它是从docker剥离出来的独立项目,和docker一样,同样也是容器技术,和docker相比,containerd更贴合k8s的需求资源占用更少性能更高,那么,我们也应该积极的拥抱containerd。
ubuntu 版本:我的是ubuntu 20,其实应该22更好,懒得再安装了
1. 先安装一些依赖

sudo apt install ca-certificates curl  gnupg lsb-release

2. 安装containerd.io,有些文章是用二进制包安装,但其实apt-get安装更方便,可以使用apt-cache madison containerd.io去看仓库有哪些containerd版本,这里直接安装最新版就可以了

apt install containerd.io

然后设置为开机启动

sudo systemctl start containerd
sudo systemctl enable containerd

检查安装是否成功

sudo systemctl status containerd
containerd --version

我的版本是 1.7.21
在这里插入图片描述
containerd安装成功,但这个containerd还不能构建镜像,需要安装另一个组件buildkit
3. 安装buildkit, 我的版本是v0.15.2 ,下载地址
https://github.com/moby/buildkit/releases

tar xzvf buildkit-v0.15.2.linux-amd64.tar.gz -C /usr/local/

在这里插入图片描述
4. buildkit设为系统应用,下载地址
https://github.com/moby/buildkit/tree/master/examples/systemd
一共下载2个文件:
buildkit.service, buildkit.socket
在这里插入图片描述
下载之后,

cp buildkit.socket /usr/lib/systemd/system
cp buildkit.service /usr/lib/systemd/system
systemctl daemon-reload
systemctl enable buildkit

buildkit安装之后,应该就可以愉快的使用containerd,但是我docker的命令很熟悉,但对containerd很陌生,是不是要重新学习containerd的命令吗?不需要,安装nerdctl可以兼容docker命令
5. 安装nerdctl
下载地址:https://github.com/containerd/nerdctl/releases
注意:不要选择full这个版本
在这里插入图片描述
下载之后安装

tar Cxzvf /usr/local/bin nerdctl-1.7.6-linux-amd64.tar.gz

好,现在就可以见证奇迹的时刻,正式的使用containerd无缝的取代docker

查看有什么镜像

nerdctl images

没有任何的镜像,下载个nginx镜像,就像docker下载镜像就可以了
只是docker pull 改为 nerdctl pull

nerdctl pull nginx:1.27-alpine3.20

在这里插入图片描述
再次查看镜像库,就可以看到有下载的nginx镜像了
启动nginx容器, 同样的也是docker命令语法,只是docker换成nerdctl

nerdctl run -d --name nginx -p 80:80 --network bridge a5127daff3d6

验证nginx容器是否启动成功
在这里插入图片描述
搞定,收工