推送镜像到阿里云仓库

本文详细介绍了如何登录阿里云DockerRegistry,包括使用专有网络地址进行镜像的拉取、推送及重命名的方法。同时,提供了从ECS推送镜像至Registry的示例,展示了如何利用dockertag和dockerpush命令实现这一过程。

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

  1. 登录阿里云Docker Registry

    $ sudo docker login --username=touming1825 registry.cn-shenzhen.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在产品控制台首页修改登录密码。

  1. 从Registry中拉取镜像

    $ sudo docker pull registry.cn-shenzhen.aliyuncs.com/touming/typ:[镜像版本号]

  2. 将镜像推送到Registry

    $ sudo docker login --username=touming1825 registry.cn-shenzhen.aliyuncs.com
    $ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/touming/typ:[镜像版本号]
    $ sudo docker push registry.cn-shenzhen.aliyuncs.com/touming/typ:[镜像版本号]

请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

  1. 选择合适的镜像仓库地址
    从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于经典网络,请使用 registry-internal.cn-shenzhen.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。
如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-shenzhen.aliyuncs.com 作为Registry的域名登录,并作为镜像命名空间前缀。
5. 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ sudo docker images
REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
$ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-shenzhen.aliyuncs.com/acs/agent:0.7-dfb6816

使用"docker images"命令找到镜像,将该镜像名称中的域名部分变更为Registry专有网络地址。

$ sudo docker push registry-vpc.cn-shenzhen.aliyuncs.com/acs/agent:0.7-dfb6816
### 使用 Containerd 推送 Docker 镜像阿里云 ACR #### 准备工作 为了通过 containerd 将镜像推送阿里云容器镜像服务(ACR),需要完成一系列准备工作: - **必需资源** - GitHub 账号和代码仓库 - 阿里云账号以及已开通的阿里云容器镜像服务实例 - 可选:钉钉机器人,用于接收操作通知[^1] - **权限配置** 确保已在阿里云控制台为相应的 ECS 实例或其他计算资源分配了足够的权限来访问 ACR。此外,在 GitHub 中设置 Secrets 来保存敏感信息如用户名、密码等。 #### 修改镜像标签 在推送之前,必须给目标镜像打上正确的标签以便识别其属于哪个具体的 ACR 库路径。假设有一个名为 `myspringbootimage` 的本地镜像,则可以通过如下命令为其指定新的远程位置: ```bash ctr images tag myspringbootimage:latest registry.cn-hangzhou.aliyuncs.com/your_namespace/myspringbootimage:latest ``` 这里需要注意的是替换 `registry.cn-hangzhou.aliyuncs.com/your_namespace/myspringbootimage:latest` 为你实际拥有的 ACR 地址[^5]。 #### 登录认证 containerd 默认情况下不会自动处理私有库的身份验证过程;因此,需要手动向它提供必要的凭证数据。这通常涉及到编辑 `/etc/containerd/config.toml` 文件中的插件部分,添加类似于下面的内容: ```toml [plugins."io.containerd.grpc.v1.cri".registries.auth] [plugins."io.containerd.grpc.v1.cri".registries.auth.authn] [plugins."io.containerd.grpc.v1.cri".registries.auth.authn.myacr] username = "aliyun_account" password = "password_or_token" serveraddress = "https://registry.cn-hangzhou.aliyuncs.com" ``` 上述配置中应填入真实的账户名(`aliyun_account`) 和 密码 (`password_or_token`) ,后者可以是在阿里云平台上生成的安全令牌而非直接使用明文形式的登录密码[^4]。 #### 执行推送动作 一旦完成了前面所有的前置条件设定之后就可以正式开始上传流程了。利用 `ctr` 工具来进行这项任务非常简单直观: ```bash ctr images push registry.cn-hangzhou.aliyuncs.com/your_namespace/myspringbootimage:latest ``` 这条指令会尝试把带有最新版本标记的目标镜像传送给位于杭州区域下的自定义命名空间内所对应的官方注册表服务器上去。 #### 后续管理 成功推送后还可以考虑进一步优化整个 CI/CD 流程,比如借助 Webhook 功能实现自动化部署更新机制或是定期清理过期不用的老版本以节省存储成本等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值