nerdctl安装,操作 containerd 如 docker

参考

安装

安装

下载地址: https://github.com/containerd/nerdctl/releases

  • 精简 (nerdctl-0.8.0-linux-amd64.tar.gz): 只包含nerdctl
  • 完整 (nerdctl-full-0.8.0-linux-amd64.tar.gz): 包含 containerd, runc, and CNI等依赖

其实官网已经有介绍安装方法,同时也介绍了包含哪些组件

Minimal
Extract the archive to a path like /usr/local/bin or ~/bin .

tar Cxzvvf /usr/local/bin nerdctl-0.21.0-linux-amd64.tar.gz
Full
Extract the archive to a path like /usr/local or ~/.local .

tar Cxzvvf /usr/local nerdctl-full-0.21.0-linux-amd64.tar.gz

精简Minimal

将归档文件解压到 /usr/local/bin~/bin

$ tar Cxzvvf /usr/local/bin nerdctl-0.21.0-linux-amd64.tar.gz

完整Full安装

解压文件到/usr/local/

# 这个直接将所有组件放入了  local 文件夹
$ tar Cxzvvf /usr/local nerdctl-full-0.21.0-linux-amd64.tar.gz
# 应该可以按需放入 先解压后再放入

开启服务

$ cp /usr/local/lib/systemd/system/*.service /etc/systemd/system/
# buildkit 是用于构建镜像
# 自启动 buildkit 和 contaienrd 服务
$ systemctl enable buildkit containerd 
$ systemctl start buildkit containerd 
# 查看状态
$ systemctl status buildkit containerd

操作

🐳nerdctl save:导出镜像

使用 save 命令可以导出镜像为一个 tar 压缩包。

➜  ~ nerdctl save -o busybox.tar.gz busybox:latest
➜  ~ ls -lh busybox.tar.gz
-rw-r--r-- 1 root root 761K Aug 19 15:19 busybox.tar.gz

🐳nerdctl rmi:删除镜像

➜  ~ nerdctl rmi busybox
Untagged: docker.io/library/busybox:latest@sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60
Deleted: sha256:5b8c72934dfc08c7d2bd707e93197550f06c0751023dabb3a045b723c5e7b373

🐳nerdctl load:导入镜像

使用 load 命令可以将上面导出的镜像再次导入:

➜  ~ nerdctl load -i busybox.tar.gz
unpacking docker.io/library/busybox:latest (sha256:0f354ec1728d9ff32edcd7d1b8bbdfc798277ad36120dc3dc683be44524c8b60)...done

使用 -i--input 选项指定需要导入的压缩包。

其他命令

### 如何在 Ubuntu 上安装 containerdnerdctl #### 1. 安装 containerd 为了在 Ubuntu 系统上成功安装 `containerd`,需要遵循以下流程: - **下载并解压容器运行时工具** 首先从官方仓库获取最新版本的 `containerd` 并将其解压缩到指定目录。以下是具体操作步骤: ```bash wget https://github.com/containerd/containerd/releases/download/v1.7.5/containerd-1.7.5-linux-amd64.tar.gz sudo tar Cxzvf /usr/local containerd-1.7.5-linux-amd64.tar.gz ``` - **配置 systemd 单元文件** 接下来创建必要的服务单元文件以便于管理 `containerd` 的启动和服务状态。 ```bash sudo mkdir -p /etc/systemd/system/containerd.service.d/ cat <<EOF | sudo tee /etc/systemd/system/containerd.service [Unit] Description=containerd container runtime Documentation=https://containerd.io After=network.target local-fs.target [Service] ExecStartPre=-/sbin/modprobe overlay ExecStart=/usr/local/bin/containerd Type=notify Delegate=yes KillMode=process Restart=always RestartSec=5 OOMScoreAdjust=-900 [Install] WantedBy=multi-user.target EOF ``` - **启用并启动 service** 使用 systemctl 命令来激活和验证新设置的服务是否正常工作。 ```bash sudo systemctl daemon-reload sudo systemctl enable --now containerd sudo systemctl status containerd ``` --- #### 2. 安装 nerdctl 完成 `containerd` 的基础环境搭建后,继续安装 `nerdctl` 来提供 Docker CLI 兼容功能。 - **选择合适的版本进行下载与提取** 根据需求挑选适合系统的二进制包形式(推荐 minimal 版本),然后放置至全局可访问路径下。 ```bash wget https://github.com/containerd/nerdctl/releases/download/v1.5.0/nerdctl-1.5.0-linux-amd64.tar.gz tar xzvf nerdctl-1.5.0-linux-amd64.tar.gz sudo mv nerdctl /usr/local/bin/ ``` - **测试安装情况** 执行下面这条指令确认程序已被正确加载以及其基本参数设定无误。 ```bash nerdctl version ``` 如果一切顺利的话,则会显示当前所使用的客户端版本号及相关信息[^2]。 --- #### 3. 解决可能遇到的问题 当尝试利用 `nerdctl` 启动镜像实例时报错提示缺少某些网络插件支持时,请按照如下方式处理: - **安装必要依赖项——CNI 插件集** 访问官方资源页面找到对应平台架构适用版本链接地址,并依照指示完成整个过程。 ```bash VERSION="v1.3.0" ARCH="amd64" URL="https://github.com/containernetworking/plugins/releases/download/${VERSION}/cni-plugins-linux-${ARCH}-${VERSION}.tgz" curl -L "${URL}" -o cni-plugins.tgz sudo mkdir -p /opt/cni/bin sudo tar zxvf cni-plugins.tgz -C /opt/cni/bin/ rm -rf cni-plugins.tgz ``` 这样就能有效规避因缺失特定组件而导致的功能受限现象发生[^5]。 --- ### 总结 以上就是在 Ubuntu 中实现基于 `containerd` 运行时框架配合 `nerdctl` 工具链的一整套解决方案概述说明文档内容摘录整理而成的结果展示部分[^1][^2][^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值