【项目实战】使用containerd CLI 工具ctr 实现从腾讯云中拉取Docker最新的镜像

这篇博客介绍了如何利用containerd的CLI工具ctr,从腾讯云中拉取Docker最新镜像。内容包括ctr的image pull、tag和push操作,并给出了具体的shell脚本示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、背景

运维同学需要实现从腾讯云中拉取Docker最新的镜像,以下是具体的操作方法~

二、containerd 的 CLI 工具:ctr

Docker CLI 工具提供了需要增强用户体验的功能,containerd 同样也提供一个对应的 CLI 工具:ctr,不过 ctr 的功能没有 docker 完善,但是关于镜像和容器的基本功能都是有的。

2.1 ctr i pull

拉取镜像可以使用 ctr image pull 来完成

ctr i pull docker.io/library/nginx:alpine
ctr i pull --all-platforms docker.io/library/nginx:alpine #建议使用这个命令,否则后面import会报错

2.2 ctr i tag

重新给指定的镜像打一个 Tag:

ctr i tag docker.io/library/nginx:alpine harbor.k8s.local/course/nginx:alpin

### 如何使用 `ctr` 命令登录 Docker 镜像仓库 `containerd` 的 CLI 工具 `ctr` 并未直接提供类似于 Docker 的 `docker login` 功能来实现镜像仓库的身份验证[^1]。然而,可以通过配置文件的方式手动设置认证信息以支持访问私有镜像仓库。 #### 方法一:通过配置文件添加认证信息 `containerd` 使用 `/etc/containerd/config.toml` 文件作为其主要配置文件。可以在该文件中指定镜像仓库的认证信息: ```toml [plugins."io.containerd.grpc.v1.cri".registry.configs] [plugins."io.containerd.grpc.v1.cri".registry.configs."my-private-repo.com"] username = "your-username" password = "your-password" auth = "base64-encoded-auth-string" # 可选字段,如果提供了 username 和 password,则无需此字段 ``` 其中: - `auth` 是 Base64 编码后的用户名和密码字符串 (格式为 `username:password`)。 - 如果不希望明文存储密码,可以选择仅填写 `auth` 字段。 保存并重启 `containerd` 后即可生效[^2]。 #### 方法二:借助外部工具完成身份验证 虽然 `ctr` 不具备内置的登录功能,但可以利用其他工具(如 `docker` 或 `crictl`)先完成登录操作,之后再由 `containerd` 自动读这些凭证数据。 ##### 步骤描述如下: 1. **使用 Docker 登录** 运行以下命令完成对目标镜像仓库的身份验证: ```bash docker login my-private-repo.com ``` 2. **确认凭证已写入配置文件** 成功执行上述命令后,Docker 将把用户的认证信息存放在 `$HOME/.docker/config.json` 中。例如: ```json { "auths": { "my-private-repo.com": { "auth": "base64-encoded-auth-string", "email": "optional-email@example.com" } } } ``` 3. **让 containerd 加载 Docker 凭证** 默认情况下,`containerd` 能够自动识别并加载来自 `$HOME/.docker/config.json` 的认证信息。因此,在后续使用 `ctr` 镜像时便不再需要额外输入账号密码[^3]。 #### 示例代码展示 假设有一个名为 `example.com/my-image:latest` 的私有镜像,以下是完整的流程演示: ```bash # Step 1: Login via Docker docker login example.com # Step 2: Pull image using ctr command ctr images pull example.com/my-image:latest ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

本本本添哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值