containerd-rootless安装

实验环境:centos7.7.1908

参考文档:

containerd (nerdctl) 依赖项 |无根容器 (rootlesscontaine.rs)

[CentOS 7] 无法安装 containerd-rootless-setuptool.sh ('[ERROR] 需要 systemd (systemctl --user)') ·期刊 #686 ·containerd/nerdctl ·GitHub

构建 Moby (Docker) 并单独运行 runc 和 containerd 来了解容器的基础知识 (zenn.dev)

首先根据文档1下载nerdctl

wget https://github.com/containerd/nerdctl/releases/download/v1.6.2/nerdctl-full-1.6.2-linux-amd64.tar.gz

 tar -xzf nerdctl-full-1.6.2-linux-amd64.tar.gz

设置普通用户testuser

useradd -m -s /bin/bash testuser

su testuser 

然后在本终端设置环境变量,之后按照文档1执行 containerd-rootless-setuptool.sh install

export PATH=$PATH:/containerd/bin

containerd-rootless-setuptool.sh install

 然后根据文档2的提示,直接运行containerd-rootless.sh

containerd-rootless安装_第1张图片

在root下执行yum install iproute -y,然后重新运行

containerd-rootless安装_第2张图片

 上面这个错误好像是没有设置cni网络导致的,但是后面我设置了一下cni网络还是存在这个错误

然后重启一个终端运行一个容器试一下 

nerdctl run hello-world

containerd-rootless安装_第3张图片 接下来要根据文档3配置一下cni网络,不过上面的错误信息提示要把cni放到/opt/cni/bin下,这个操作的citrix中/opt我没有写权限

在root下执行相关操作

wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-arm64-v1.1.1.tgz

tar xvf cni-plugins-linux-arm64-v1.1.1.tgz -C cni/

cd cni/

containerd-rootless安装_第4张图片

然后在root用户下把cni放到/opt/cni/bin下试一下

mkdir -p /opt/cni/bin

cp * /opt/cni/bin/

 [testuser@e8d55414b4ef /]$ nerdctl run hello-world
FATA[0000] failed to mount /run/user/1000/containerd-mount2759511587: operation not permitted

 这个问题网上没有找到解决方案。上面下载的cni需要放到/opt/cni/bin下,在citrix中不知道可不可以。

通过查阅,上述问题可能与主目录的文件系统有关,以下配置可能有效

nerdctl run --snapshotter=fuse-overlayfs--snapshotter=native

举例

nerdctl run -it  --snapshotter=fuse-overlayfs --snapshotter=native 50752af5182c 

还有上述cni网络的路径问题,可以通过 CNI_PATH来指定路径,比如

export CNI_PATH=/containerd

echo $CNI_PATH

上述指定路径到/containerd,然后把cni的配置就可以直接配置到/containerd下,不用再配置到/opt/cni/bin下了。

你可能感兴趣的:(概伦实习,容器,运维,linux)