分分钟搞定阿里云私有Docke镜像仓库的搭建

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 分分钟搞定阿里云私有Docke镜像仓库的搭建

前言:


 所谓私有仓库,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭建好之后,我们可以将自己的镜像提交到私有仓库中。这样我们既能使用 Docker 来运行我们的项目镜像,也避免了商业项目暴露出去的风险。


搭建私有镜像仓库:


1.登录阿里云选择“容器镜像服务”

1.png

2.创建容器镜像服务


 第一次进入容器镜像服务会提示开通服务并设置Registry登录密码,记住这个密码,后面都会用到。

2.png

3.创建命名空间


 创建镜像仓库之前必须先创建命名空间,注意一个账号最多只可以创建3个命名空间,并且设置后不可以修改。

3.png

4.创建镜像仓库


 选择之前创建好的命名空间,然后选择仓库类型,填上相应的信息创建镜像仓库。

4.png

5.查看私有镜像仓库信息

5.png6.png

 在镜像仓库中可以看到该私有镜像仓库的公网地址跟专有地址,底下也有阿里云提供的详细操作指南。包括可以设置一些子账号的仓库权限。


6.登录阿里云镜像仓库

[root@localhost ~]# sudo docker login --username=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

 登录成功后底下是一个警告信息,意思是我们的密码以明文格式记录在/root/.docker/config.json文件中,之后再登录就不需要密码了,如果要删除密码就可以去/root/.docker/config.json文件中删除。

7.png

7.上传镜像至阿里云私有镜像仓库


  • 7.1  为要上传的镜像选择镜像仓库并打上版本号标签(打标签时选择的镜像仓库如果先前没有在阿里云上创建,那么在上传镜像的时候会自动创建镜像仓库)


sudo docker tag 镜像ID registry.cn-zhangjiakou.aliyuncs.com/命名空间/镜像仓库名称:镜像版本号

[root@localhost ~]# docker images         
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
mytomcat               v1                  c0b9a81cd686        5 days ago          639MB
[root@localhost ~]# docker tag c0b9a81cd686 registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:1.0             
 //给镜像ID为c0b9a81cd686的镜像打上版本标签,选择上传的镜像仓库名称为mytomcat,版本为1.0
[root@localhost ~]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
mytomcat                                                          v1                  c0b9a81cd686        5 days ago          639MB
registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat   1.0                 c0b9a81cd686        5 days ago          639MB
  • 7.2 将打好版本号标签的镜像上传至阿里云私有镜像仓库中


sudo docker push registry.cn-zhangjiakou.aliyuncs.com/命名空间/镜像仓库名称:镜像版本号

[root@localhost ~]# docker push registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:1.0      
 //上传版本号为1.0的镜像至镜像仓库名为mytomcat的镜像仓库中
The push refers to repository [registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat]
377b5223baf6: Layer already exists
5f5f84b30131: Layer already exists
2a0b10f7f9ba: Layer already exists
2653d992f4ef: Layer already exists
1.0: digest: sha256:083382b6cc0b5d039c91e99f791bac10dd68e794f776b93e046ae0a14d0e0a16 size: 1166
  • 7.3 再上传一个镜像版本号为2.0的镜像到mytomcat镜像仓库中
[root@localhost ~]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
mytomcat                                                          v1                  c0b9a81cd686        5 days ago          639MB
registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat   1.0                 c0b9a81cd686        5 days ago          639MB
mycentos                                                          2.0                 040f98e77919        6 days ago          291MB
[root@localhost ~]# sudo docker tag 040f98e77919 registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:2.0
  //将镜像ID为040f98e77919的镜像上传至mytomcat镜像仓库中,版本号为2.0
[root@localhost ~]# sudo docker push registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:2.0
The push refers to repository [registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat]
b49a94a64103: Pushed
88d59513ebbc: Pushed
2653d992f4ef: Layer already exists
2.0: digest: sha256:88025ccfcc439853ecab8f4b5ca7a2f44ca09f180bfc0e8dab983083e9f53ca1 size: 953

8.查看上传的镜像


 可以看到我们在上传镜像的时候可以选择将当前要上传的镜像上传至哪一个镜像仓库中,一个镜像仓库可以存放多个不同版本的镜像。

8.png9.png10.png

 可以看到目前mytomcat镜像仓库中已经上传了版本分别为1.0跟2.0的镜像。


9.从阿里云镜像仓库拉取镜像


  • 9.1 因为阿里云镜像仓库中只有之前上传的镜像,所以现在先将本地的这个镜像删除,再从阿里云镜像仓库拉取到本地。
[root@localhost ~]# docker rmi registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:1.0
  //删除标签为版本1.0,镜像仓库为mytomcat的镜像
Untagged: registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:1.0
Untagged: registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat@sha256:083382b6cc0b5d039c91e99f791bac10dd68e794f776b93e046ae0a14d0e0a16
[root@localhost ~]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
mytomcat                                                          v1                  c0b9a81cd686        5 days ago          639MB
registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat   2.0                 040f98e77919        6 days ago          291MB
mycentos                                                          2.0                 040f98e77919        6 days ago          291MB
  • 9.2 从阿里云镜像仓库拉取镜像


sudo docker pull registry.cn-zhangjiakou.aliyuncs.com/命名空间/镜像仓库名称:镜像版本号

[root@localhost ~]# sudo docker pull registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:1.0
 //从阿里云镜像仓库mytomcat中拉取版本为1.0的镜像
1.0: Pulling from lss-docker-images/mytomcat
Digest: sha256:083382b6cc0b5d039c91e99f791bac10dd68e794f776b93e046ae0a14d0e0a16
Status: Downloaded newer image for registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:1.0
registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:1.0
[root@localhost ~]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat   1.0                 c0b9a81cd686        5 days ago          639MB
mytomcat                                                          v1                  c0b9a81cd686        5 days ago          639MB
mycentos                                                          2.0                 040f98e77919        6 days ago          291MB
registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat   2.0                 040f98e77919        6 days ago          291MB

10.镜像重命名


 大家都知道我们在之前上传镜像的时候打的标签都很长,后续从阿里云镜像仓库拉取下来的时候,名字会特别长,不方便操作,所以我们将他们重命名。

[root@localhost ~]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
mytomcat                                                          v1                  c0b9a81cd686        5 days ago          639MB
registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat   1.0                 c0b9a81cd686        5 days ago          639MB
mycentos                                                          2.0                 040f98e77919        6 days ago          291MB
registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat   2.0                 040f98e77919        6 days ago          291MB

 我们将刚才拉取的命名空间为lss-docker-images,镜像仓库名为mytomcat,版本号为1.0的镜像registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat 1.0重命名。

[root@localhost ~]# docker tag registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:1.0 mytomcat:1.0
 //将上面的镜像重命名为mytomcat:1.0
[root@localhost ~]# docker rmi registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat:1.0
 //重命名后删除之前的镜像

 将某个名字很长的镜像重命名后,记得将该名字很长的镜像删除,因为我们已经重新命名了一个了,这个镜像不删除也会一直在本地。

[root@localhost ~]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
mytomcat                                                          1.0                 c0b9a81cd686        5 days ago          639MB
mytomcat                                                          v1                  c0b9a81cd686        5 days ago          639MB
mycentos                                                          2.0                 040f98e77919        6 days ago          291MB
registry.cn-zhangjiakou.aliyuncs.com/lss-docker-images/mytomcat   2.0                 040f98e77919        6 days ago          291MB


相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5月前
|
敏捷开发 Kubernetes 测试技术
阿里云云效产品使用问题之 拉取阿里云acr仓库的镜像时,配置内网地址还是公网地址
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
运维 Devops
阿里云云效操作报错合集之创建镜像仓库时遇到报错,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之创建镜像仓库时遇到报错,是什么导致的
|
3月前
|
存储 运维 数据安全/隐私保护
如何高效利用阿里云Docker镜像仓库管理您的容器镜像
如何高效利用阿里云Docker镜像仓库管理您的容器镜像
|
3月前
|
弹性计算 Docker 容器
创建阿里云镜像仓库imagePullSecrets
创建阿里云镜像仓库imagePullSecrets
|
6月前
阿里云配置dcoker镜像仓库
阿里云配置dcoker镜像仓库
288 0
|
4月前
|
敏捷开发 Kubernetes 测试技术
阿里云云效产品使用合集之如何通过内网推送镜像到镜像仓库
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
容器 Cloud Native 安全
CTF本地靶场搭建——基于阿里云ACR实现动态flag题型的创建
本文介绍了如何利用阿里云ACR服务创建动态flag题型。阿里云容器镜像服务ACR是一个支持 OCI 标准的云原生制品托管和分发平台,提供全球化加速、大规模分发等功能,简化云原生应用交付。由于dockerhub访问不便,文章建议使用ACR作为替代。步骤包括在虚拟机内创建【GZCTF】->【WEB】->【src】文件夹,编写index.php和flag.sh文件,然后创建Dockerfile。接着,用户需在阿里云注册并使用ACR,构建、推送镜像,并在靶场部署动态容器。通过ACR,可以实现不同账号看到不同flag的动态更新,完成了动态flag题型的创建。
|
6月前
|
Java Linux 数据安全/隐私保护
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
2970 0
|
6月前
|
运维 IDE Serverless
Serverless 应用引擎产品使用之阿里函数计算中,阿里云容器镜像服务(Container Registry)中创建自定义镜像,然后将其部署到FC上如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
Devops Java 数据安全/隐私保护
DevOps搭建(二)-阿里云镜像仓库的使用详解
DevOps搭建(二)-阿里云镜像仓库的使用详解
166 0
下一篇
无影云桌面