ubuntu安装containerd,取代docker
最近项目需要上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容器是否启动成功
搞定,收工