2023-02-18更新
最近在升级nerdctl时发现有些地方变更了,最新的文档可以参考containerd官方的文档了
起因
一直在用nezha探针,服务端的部署方式很简单,直接用docker部署就可以了,但是自从上次迁移到racknerd之后出现了严重的内存泄露问题,如果一直看着dashboard,初始状态下从还不足50%会一直占用到70-80%,尝试各种限制但是效果并不明显。后来发现轻量级的containerd,进一步发现docker本身也是间接的管理containerd,既然都是containerd,那为什么还要装docker呢?于是尝试从docker迁移到containerd。
安装containerd
官方的安装说明也很简单,直接下载官方包,解压就可以了,具体安装如下:
#目前最新版为1.6.8,具体可以参考官方说明
wget https://github.com/containerd/containerd/releases/download/v1.6.8/cri-containerd-1.6.8-linux-amd64.tar.gz
#解压进行安装
tar -C / -xzf cri-containerd-1.6.8-linux-amd64.tar.gz
默认可以systemctl进行管理,比如开机自启等,操作如下:
#开机自启
systemctl enable containerd
#启动containerd
systemctl start containerd
安装nerdctl
containerd本身的管理太过简单,可以通过nerdctl进行管理,使用方式跟docker非常类似,具体安装如下:
#目前安装的是0.22.2,最新版参考官方
wget https://github.com/containerd/nerdctl/releases/download/v0.22.2/nerdctl-0.22.2-linux-amd64.tar.gz
#解压并安装到/usr/local/bin,仅限debian系,如果是centos则要么改路径,要么加环境变量
tar Cxzvvf /usr/local/bin nerdctl-0.22.2-linux-amd64.tar.gz
本身还需要cni-plugins,因此也需要安装
#当前最新版为1.1.1
wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz
#先创建所需的目录并解压安装
mkdir /opt/cni
mkdir /opt/cni/bin
tar Cxzvvf /opt/cni/bin cni-plugins-linux-amd64-v1.1.1.tgz
安装完之后如果没有其它问题就可以使用了。
遇到的问题
(1)runc无法启动,表现为启动镜像时报错:ctr: failed to create shim: OCI runtime create failed: unable to retrieve OCI runtime error (open /run/containerd/io.containerd.runtime.v2.task/xxxx/xxxxx/log.json: no such file or directory,刚开始时完全不知道怎么处理,后来通过爬文发现是runc的问题,最简单的可以直接执行runc命令,得到的错误是:runc: undefined symbol: seccomp_notify_respond,网上说是libseccomp版本问题,如果是centos则可以尝试更新依赖解决,由于我大部分都是debian,最简单的方式是替换runc,可以直接从这里下载,提供两种修复方式,一种是libseccomp-2.5.4.tar.gz源码,可以下载下来自己编译安装,另外一种是runc的可执行文件,我用的第二种,具体操作如下:
#下载runc
wget https://github.com/opencontainers/runc/releases/download/v1.1.4/runc.amd64
#重命名文件
mv runc.amd64 runc
#增加可执行权限
chmod +x runc
#查找当前runc所在目录
which runc
#替换当前runc,这是debian下的,centos下为/usr/bin/runc
mv runc /usr/local/sbin/runc
(2)缺少iptables组件,会提示:failed to locate iptables: exec: \"iptables\": executable file not found in $PATH",解决方法就是直接安装iptables就可以了
结束
最开始迁移的时候没有太在意,本身不太爱用docker的方式,感觉吃内存跟硬盘,但是最近看到可以用traffmonetizer挂机挣钱,手里小鸡也不算少,就打算部署一下,可官方并没有提供二进制的方式部署只有docker,没办法就用containerd进行部署了,也可以走我的aff,注册之后就可以得到5$,具体部署方式也很简单:
#拉取镜像
nerdctl pull traffmonetizer/cli:latest
# 启动
nerdctl run -d --name tm traffmonetizer/cli start accept --token 你的token
也不知道收益咋样,之前挂过peer2profit,但是感觉收益好少后面就放弃了,试试这个看看咋样😎。
priligy 30mg Multivitamin Supplements Breast Cancer
Ophthalmic Surg Lasers Imaging 2010; 41 e1Ye5 pastillas priligy en mexico
你的文章内容非常卖力,让人点赞。 https://www.4006400989.com/qyvideo/31429.html
《来日可期》记录片高清在线免费观看:https://www.jgz518.com/xingkong/55251.html
如何有效举报开传奇私服的行为及途径探讨:https://501h.com/heji/2024-09-04/32765.html
哈哈哈,写的太好了https://www.cscnn.com/
看的我热血沸腾啊www.jiwenlaw.com
想想你的文章写的特别好https://www.ea55.com/
怎么收藏这篇文章?
purchase cialis online cheap Primers MUC20 1 ChIP qPCR This paper MUC20 1