阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)推送镜像全过程及总结

前提:安装配置好docker,可参考我这篇 基于CentOS7安装配置docker与docker-compose。

一、设置访问凭证

1.1 容器镜像服务ACR

登录进入阿里云首页,点击 产品-容器-容器镜像服务ACR
在这里插入图片描述
点击管理控制台
在这里插入图片描述

1.2 进入控制台-点击实例列表

在这里插入图片描述
个人容器镜像托管服务,限额使用
在这里插入图片描述

1.3 创建个人版

在这里插入图片描述
个人容器镜像托管服务,限额使用
在这里插入图片描述
知晓个人版无SLA保障且有使用限制,请勿在生产业务中使用
在这里插入图片描述
创建中
在这里插入图片描述
创建成功
在这里插入图片描述

1.4 设置Registry登录密码

在这里插入图片描述
点击确定
在这里插入图片描述
点击确定
在这里插入图片描述
初始化成功
在这里插入图片描述

1.5 查看访问凭证

在上图中点击 “访问凭证”,按下图复制访问凭证

在这里插入图片描述

1.6 复制粘贴凭证 Login Succeeded

在这里插入图片描述
Login Succeeded
在这里插入图片描述

1.7 设置固定密码

在这里插入图片描述
设置固定密码,手机验证
在这里插入图片描述
全过程
在这里插入图片描述

1.8 个人版运行中

在这里插入图片描述

1.9 第一步 访问凭证-设置访问密码完成(右下角有显示)

在这里插入图片描述

1.10 容器镜像服务个人版将于2023年8月20日起取消个人版实例的镜像安全扫描-镜像同步功能

在这里插入图片描述

二、创建命名空间

2.1 创建命名空间相关说明

创建命名空间相关说明:
1、一个账号最多可以创建 3 个命名空间2、命名空间创建参考:
推荐创建的命名空间用来对应一个公司、组织或个人用户,例如AliyunObama。不推荐用来对应一个模块
或系统,例如TomcatCentOS,应用或模块推荐使用仓库进行管理。3、定义您的镜像仓库命名空间,设置后不可修改。长度为2-30位,可填写小写英文字母、数字,可使用的分隔
符包括“_”、“-”(分隔符不能在首位或末位)

2.2 点击右下角命名空间 第二步

在这里插入图片描述
在这里插入图片描述

2.3 创建命名空间-2023815_djc-命名空间创建参考

在这里插入图片描述
在这里插入图片描述
创建命名空间-2023815_djc成功
在这里插入图片描述

2.4 第二步-命名空间-创建命名空间完成

在这里插入图片描述

三、创建镜像仓库rep2023815

注意: 这里的镜像仓库名rep2023815有误,容易无法区分镜像,但过程和步骤没问题,建议直接从 四、创建镜像仓库mysql全过程五、将mysql镜像推送到Registry-镜像仓库mysql 开始阅读,再看 七、总结 ,减少无用功。

3.1 点击右下角镜像仓库 第三步

在这里插入图片描述

3.2 点击创建镜像仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 代码源选择本地仓库

代码源 选择本地仓库 ,。可以通过命令行推送镜像到镜像仓库
在这里插入图片描述

3.4 其他代码源介绍

3.4.1 代码源-Codeup介绍

在这里插入图片描述

3.4.2 代码源-GitHub

在这里插入图片描述

3.4.3代码源-Bitbucket

在这里插入图片描述

3.4.4代码源-私有GitLab

在这里插入图片描述

3.4.5 代码源-本地仓库

在这里插入图片描述

3.5 代码源选择本地仓库 -镜像仓库rep2023815创建成功

在这里插入图片描述

3.5.1 仓库rep2023815-基本信息-操作指南

在这里插入图片描述

3.5.2 镜像仓库rep2023815-基本信息-制品描述

在这里插入图片描述

3.6 镜像仓库rep2023815-触发器

在这里插入图片描述

3.7 仓库rep2023815-镜像版本

在这里插入图片描述

3.8 将jdk11镜像推送到Registry-镜像仓库rep2023815

docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
//输入之前设置的密码  
docker tag 526230ab6ddf registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:11docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:11

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.9 将nginx镜像推送到Registry–镜像仓库rep2023815

docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com 
输入之前设置的密码  docker tag 0e901e68141f registry.cnhangzhou.aliyuncs.com/2023815_djc/rep2023815:v1.21.6   docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v1.21.6

3.10 将mysql8.0.31镜像推送到Registry-镜像仓库rep2023815

//1-登录  在终端中输入访问凭证,登录Registry实例 
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码  //2-tag
//docker images
//mysql        8.0.31          484689f290f   8 months ago    538MB
//docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:[镜像版本号]
docker tag  7484689f290f  registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v8.0.31       3-push
//docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v8.0.31    请根据实际镜像信息替换示例中的[ImageId][镜像版本号]参数。

3.12 镜像仓库一览

在这里插入图片描述

在这里插入图片描述
注意: 这里的镜像仓库名rep2023815有误,容易无法区分镜像,但过程和步骤没问题,建议直接从 四、创建镜像仓库mysql全过程五、将mysql镜像推送到Registry-镜像仓库mysql 开始阅读,再看 七、总结 ,减少无用功。

四、创建镜像仓库mysql全过程

4.1 首页

在这里插入图片描述

4.2 点击管理控制台

在这里插入图片描述

4.3 进入实例列表

在这里插入图片描述
在这里插入图片描述

4.4 点击进入镜像仓库

在这里插入图片描述
在这里插入图片描述

4.5 点击创建镜像仓库

在这里插入图片描述

点击“下一步”
在这里插入图片描述
在这里插入图片描述

4.6 镜像仓库mysql-基本信息

提示点击“添加仓库成功”
在这里插入图片描述

4.6.1 镜像仓库mysql-基本信息-操作指南

在这里插入图片描述

操作指南 1. 登录阿里云Docker Registry
$ docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
//输入之前设置的密码 
您可以在访问凭证页面修改凭证密码。2.Registry中拉取镜像
$ docker pull registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]3. 将镜像推送到Registry
$ docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId][镜像版本号]参数。4. 选择合适的镜像仓库地址
从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录。5. 示例
使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。$ docker images
REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
$ docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
使用 "docker push" 命令将该镜像推送至远程。$ docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816

4.6.2 镜像仓库mysql-基本信息-制品描述

在这里插入图片描述

4.7 镜像仓库可以查看到刚刚创建好的mysql镜像仓库

在这里插入图片描述

五、将mysql镜像推送到Registry-镜像仓库mysql

5.1 将镜像推送到Registry-操作指南

参考 4.6.1 仓库mysql-基本信息-操作指南 中的第3点。

3. 将镜像推送到Registry
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码 docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId][镜像版本号]参数。

5.2 docker images 查看需要上传push的镜像信息

IMAGE ID 与 镜像版本号(TAG)

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

在这里插入图片描述

5.3 将mysql镜像推送到Registry-镜像仓库mysql

5.3.1 将mysql镜像推送到Registry-镜像仓库mysql-命令

3. 将镜像推送到Registry
//1-login
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码  
//2-tag
//这个命令并没有推送镜像,只是给镜像指定一个版本,这个版本不是指本地镜像的版本,而是推送后在阿里云仓库的版本。
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
//3-push
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]-----------//1-login
//连续上传,只需要登录一次
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码  -------------mysql 8.0.29-----------------------
//2-tag
docker tag 33037edcac9b  registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.29  
//3-push
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.29  -------------mysql 8.0.31-----------------------
//2-tag
docker tag 7484689f290f  registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.31  
//3-push
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.31 
【说明】:
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:[镜像版本号]
这个命令并没有推送镜像,只是给镜像指定一个版本,这个版本不是指本地镜像的版本,而是推送后在阿里云仓库的版本。//tag后面的是你要推送的镜像id
//后面是你的镜像仓库地址,直接去创建好的仓库去复制 

5.3.2 将mysql镜像推送到Registry–镜像仓库mysql-截图

在这里插入图片描述

Digest:该镜像的摘要信息。当您下载镜像时,最后一行中会出现这个值。镜像ID: 使用1.10以上版本的客户端推送、拉取镜像时,这个值在客户端和服务端能够保持一致。否则这个值
将是随机的不予提供。

5.4 mysql8.0.31推送到Registry-镜像仓库mysql的一些问题

镜像仓库rep2023815也推送了一个mysql8.0.31的镜像,见 3.10 将mysql8.0.31镜像推送到Registry-镜像仓库rep2023815
在这里插入图片描述

5.5 推送mysql镜像到Registry-镜像仓库mysql后再次使用docker images

发现推送到Registry后会在本地也生成一个 相同IMAGE ID的镜像,如下图所示。
在这里插入图片描述

5.6 进入阿里云镜像仓库查看推送到Registry(镜像仓库mysql)的mysql镜像

在这里插入图片描述
点击mysql镜像仓库,点击镜像版本
在这里插入图片描述

六、将之前使用dockerfile手动构建JDK11镜像推送到Registry-镜像仓库jdk

文章见 使用dockerfile手动构建JDK11镜像运行容器并校验

3. 将镜像推送到Registry
docker login --username=djcking2020 registry.cn-hangzhou.aliyuncs.com
输入之前设置的密码  
//docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:[镜像版本号]
docker tag 526230ab6ddf  registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:11//docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:11请根据实际镜像信息替换示例中的[ImageId][镜像版本号]参数。

6.1 创建镜像仓库jdk

在这里插入图片描述
在这里插入图片描述

6.2 jdk镜像仓库-本地仓库-基本信息-操作指南

在这里插入图片描述
docker images
这里可以看到本地存在两个同IMAGE ID的镜像,TAG都是11,一个是在使用dockerfile手动构建JDK11镜像运行容器并校验 中手动使用 docker build -t java:11 . 命令构建的,另外一个则是在
3.9 将jdk11镜像推送到Registry-镜像仓库rep2023815推送到rep2023815镜像仓库后,后会在本地也生成一个 相同IMAGE ID的镜像。
在这里插入图片描述

6.3 将jdk镜像推送到Registry-镜像仓库jdk截图

在这里插入图片描述
可以发现,这里和正常推送到仓库成功后显示的信息不同,这里显示Mounted from 2023815_djc/rep2023815,

1、此时rep2023815和jdk这两个镜像仓库相同的是中都推送了jdk11这个镜像,并且IMAGE IDTAG都相同。2、但是rep2023815镜像仓库中的REPOSITORY就是registry.cnhangzhou.aliyuncs.com/2023815_djc/rep2023815,
而且还存放了mysql8.0.31的镜像。3、jdk镜像仓库的推送的jdk的REPOSITORY是registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk,只存放了jdk这一种镜像。

所以这里显示的 Mounted from 2023815_djc/rep2023815,应该是从和镜像仓库jdk同一命名空间2023815_djc,存放相同IMAGE IDjdk11镜像的镜像仓库rep2023815中(3.9 将jdk11镜像推送到Registry-镜像仓库rep2023815),直接把该jdk11镜像同步到了镜像仓库jdk,所以显示和正常推送的不同。
在这里插入图片描述

6.4 镜像仓库jdk

在这里插入图片描述
刚刚推送到Registry-镜像仓库jdk的jdk11镜像
在这里插入图片描述

6.5 镜像仓库jdk-安全扫描

在这里插入图片描述

6.6 镜像仓库jdk-镜像层信息

会发现这里镜像层信息与我们 使用dockerfile手动构建JDK11镜像运行容器并校验中的dockerfile文件内容大致相同。
在这里插入图片描述

七、总结

docker images 各参数说明:
REPOSITORY:表示镜像的仓库源名
TAG:镜像的标签或版本
IMAGE ID:镜像ID
CREATED:镜像创建时间
SIZE:镜像大小1、同一镜像仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 jdk仓库源里,有 111213....20 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义并区分不同的镜像,例如jdk:11,jdk:12,jdk:13,jdk:20等。2、所以一个镜像仓库只存放一种镜像,镜像仓库名要见名知意,如镜像仓库jdk,就知道这个镜像仓库存放的是jdk11版本。
registry.cn-hangzhou.aliyuncs.com/2023815_djc/jdk:11 如镜像仓库mysql,就知道这个镜像仓库存放的是mysql:8.0.29和mysql:8.0.31 
这两个版本。
registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.29
registry.cn-hangzhou.aliyuncs.com/2023815_djc/mysql:8.0.31 
如图一、图二所示。3、所以rep2023815中存放了好几种镜像,mysql,jdk,nginx,是错误的存放方式,容易无法区分镜像,如图一、图二所示。
//jdk  
registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:11
//mysql
registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v8.0.31  
//nginx
registry.cn-hangzhou.aliyuncs.com/2023815_djc/rep2023815:v1.21.64、所以镜像仓库名一般写成应用名就可以了,如mysql,oracle,jdk等。5、发现推送到Registry(某镜像仓库)后会在本地也生成一个相同IMAGE ID的镜像,如图一、图二所示。

7.1 图一如下

在这里插入图片描述

7.2 图二如下

图一

八、容器镜像服务ACR个人版产品功能调整公告 相关(2023年8月20日)

容器镜像服务ACR个人版产品功能调整公告 更新时间:2023-06-26 14:25
尊敬的阿里云容器镜像服务ACR用户:
容器镜像服务ACR计划从2023年8月20日起取消容器镜像服务ACR个人版的镜像安全扫描、镜像同步功能,如果有镜像安全及跨地域镜像高效分发需求,建议提前规划迁移至容器镜像服务ACR企业版实例。具体操作,请参见个人版迁移。

变更内容
自2023年8月20日起,容器镜像服务ACR个人版镜像安全扫描、镜像同步功能将不再支持发起新任务,所有已执行完成的任务将不再支持查询任务状态及详情。请及时关注本次产品变更内容,以免影响您的后续使用,感谢您的配合。

在这里插入图片描述2023-8-18 05:27:45
个人版迁移
访问VPC的服务关联角色
个人版实例镜像导入到企业版实例
使用个人版域名访问企业版实例

【转载aliyun官方-容器镜像服务 ACR】Docker常见问题
使用dockerfile手动构建JDK11镜像运行容器并校验

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/80959.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生物医学翻译,选择专业翻译公司有何优势

我们知道,生物医学翻译是基于生物医学等相关行业的翻译服务,具有较强的专业性和复杂性,为了确保生物医学翻译的质量,务必选择专业的翻译公司。那么,专业翻译公司有何优势,北京生物医学翻译哪家好&#xff1…

【应用层】网络基础 -- HTTP协议

再谈协议HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP的状态码HTTP常见HeaderHTTP周边会话保持 再谈协议 协议是一种 “约定”. socket api的接口,在读写数据时,都是按 “字符串” 的方式来发送接收的(tcp是以字节流的方式发送的&am…

Java“牵手”天猫商品评论API接口数据,天猫API接口申请指南

天猫商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取淘宝商品详情页面评价内容数据,您可以通过开放平台的接口或者直接访问淘宝商城的网页来获取商品详情信息内的评论数据。以下是两种常用方法…

No mapping found for HTTP request with URI

参考: 参考地址 说明 ssm老项目,接过来别人的项目 临时建了一个Controller方便测试用的,结果访问掉不通,报: No mapping found for HTTP request with URIxxxx 这样的错误 解决办法 看了下web,xml配置 在 webmvc-config.xml 配置文件里面添加了几行配置 说明: com.iph.h…

UE4与pycharm联合仿真的调试问题及一些仿真经验

文章目录 ue4与pycharm联合仿真的调试问题前言ue4端的debug过程pycharm端 一些仿真经验小结 ue4与pycharm联合仿真的调试问题 前言 因为在实验中我需要用到py代码输出控制信息给到ue4中,并且希望看到py端和ue端分别在运行过程中的输出以及debug调试。所以&#xf…

手机锁屏密码忘了怎么解开?4个方法,帮你解锁!

“最近新买了一部手机,为了保护隐私我还特意设置了密码。明明之前一直都记得,但昨天手机没电后重新开机,就怎么也想不起手机的锁屏密码了,有什么方法可以解决这个问题吗?” 随着手机在日常生活中的普及,手机…

gdb 条件断点

条件断点,顾名思义就是有条件才会触发的断点,一般设置此类断点形如:b xxx if xxx,如: 要触发此断点则需要 is_created 0。打完断点我们也可以用 info b 查看一下当前已经设置的断点信息,如: 断…

Redis数据结构之String

String 类型是 Redis 的最基本的数据类型,一个 key 对应一个 value,可以理解成与Memcached一模一样的类型。 String 类型是二进制安全的,意思是 Redis 的 String 可以包含任何数据,比如图片或者序列化的对象,一个 Redi…

docker 内apt-get安装软件都不好使

报各种错误 apt-get install --no-install-recommends libboost-all-dev Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed:autoconf automake autotools-dev cpp-8 gc…

消息队列——RabbitMQ(一)

MQ的相关概念 什么事mq MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中&#xff…

【Linux】ctime、mtime、atime

/etc/fstab中的noatime noatimedir 挂载选项linux下文件的ctime、mtime、atime一、/etc/fstab /etc/fstab是用来存放文件系统的静态信息的文件。 系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中…

ELK日志监控系统搭建docker版

目录 日志来源elk介绍elasticsearch介绍logstash介绍kibana介绍 部署elasticsearch拉取镜像:docker pull elasticsearch:7.17.9修改配置⽂件:/usr/share/elasticsearch/config/elasticsearch.yml启动容器设置密码(123456)忘记密码…