当前位置: 首页 > news >正文

云原生之容器编排实践-阿里云私有容器镜像仓库

背景

前面我们已经通过 IDEADocker 插件连接到了 Docker 服务,并借助 DockerfileMaven 打包插件实现一键部署 Spring Boot 应用到远程 Docker 容器。但是这里的镜像都存储在本地( Docker 所在的主机),这样在实际的协同开发时不方便共享,所以可以采用各大云服务商提供的私有容器镜像仓库服务,或者自建私有仓库。这里使用阿里云提供的私有容器镜像仓库进行实践。

阿里云私有容器镜像仓库

  • 阿里云搜索容器镜像服务

直接在阿里云搜索容器镜像服务即可。

2022-09-03-AliyunDockerSearch.jpg

  • 创建个人实例

作为实验测试,使用个人实例即可,如果实际生产需要,可选择企业实例。

2022-09-03-DockerPersonal.jpg

远程登录并上传镜像

命令行登录阿里云私有容器镜像仓库后,对指定的镜像打Tag,然后推送到远程镜像仓库。

# 先看下本地镜像列表
[root@k8s0 ~]# docker images
REPOSITORY                                                    TAG              IMAGE ID       CREATED         SIZE
heartsuit/cloud-native                                        latest           eb03480c1351   3 days ago      122MB
heartsuit/cloud-native                                        0.0.1-SNAPSHOT   e0f7dde1261a   4 days ago      122MB
kicbase/stable                                                v0.0.32          ff7b11088f07   2 months ago    1.15GB
hello-world                                                   latest           feb5d9fea6a5   11 months ago   13.3kB
openjdk                                                       8-jdk-alpine     a3562aa0b991   3 years ago     105MB
# 输入账号与密码登录
[root@k8s0 ~]# docker login --username=heartsuit registry.cn-hangzhou.aliyuncs.com
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

# 打Tag
[root@k8s0 ~]# docker tag e0f7dde1261a registry.cn-hangzhou.aliyuncs.com/container-repo/docker-hub:0.0.1-SNAPSHOT

# Push到远程仓库
[root@k8s0 ~]# docker push registry.cn-hangzhou.aliyuncs.com/container-repo/docker-hub:0.0.1-SNAPSHOT
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/container-repo/docker-hub]
8fae554c8835: Pushed 
ceaf9e1ebef5: Pushed 
9b9b7f3d56a0: Pushed 
f1b5933fe4b5: Pushed 
0.0.1-SNAPSHOT: digest: sha256:aa901df7e77dce21461b28d3c4c46241cdc3e0247631541b29eee551f3ee529b size: 1159
# 再次看下本地镜像列表
[root@k8s0 ~]# docker images
REPOSITORY                                                    TAG              IMAGE ID       CREATED         SIZE
heartsuit/cloud-native                                        latest           eb03480c1351   3 days ago      122MB
registry.cn-hangzhou.aliyuncs.com/container-repo/docker-hub   0.0.1-SNAPSHOT   eb03480c1351   3 days ago      122MB
heartsuit/cloud-native                                        0.0.1-SNAPSHOT   e0f7dde1261a   4 days ago      122MB
kicbase/stable                                                v0.0.32          ff7b11088f07   2 months ago    1.15GB
hello-world                                                   latest           feb5d9fea6a5   11 months ago   13.3kB
openjdk                                                       8-jdk-alpine     a3562aa0b991   3 years ago     105MB

远程镜像仓库

2022-09-03-AliyunDocerRepository.png

之后,就可以将自己 Build 好的镜像进行共享了。

小总结

以上是使用阿里云提供的私有容器镜像仓库托管服务的具体实践,其实,其他云服务提供商提供的此类服务的用法基本一致,eg: 腾讯云,因为都是参考的 Docker 官方的镜像仓库来实现的。当然如果网络环境(主要是上传和拉取镜像的速度)具备条件,可直接使用 Docker 官方提供的镜像库。

有了私有的容器镜像仓库,当在 minikube 或者 Kubernetes 中拉取私有容器镜像仓库的镜像时,并不能直接拉取,还需要进行认证信息配置,这在后续文章中会专门介绍到。

Reference

  • https://hub.docker.com/
  • https://cr.console.aliyun.com/cn-hangzhou/instances

If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!

相关文章:

  • 对二维数组从两个维度进行排序(Arrays.sort()方法使用Lambada表达式)
  • SpringBoot 接口整理
  • SpringBoot工程打包与发布运行
  • 芒格-“永远不要有受害者心态”
  • 【位运算】leetcode 190. 颠倒二进制位
  • nexus on k8s最佳实战
  • LeetCode 每日一题 2022/8/29-2022/9/4
  • webpack定制化 高级配置[热更新、热打包、别名、调试]
  • 外贸员需要知道的那些事儿
  • c++11 多线程支持 (std::shared_future)
  • webpack定制化 基础配置[基础、配置、初运行]
  • mysql基本语句:DQL(数据查询语言)
  • Android | 通过URL获取网络图片Bitmap格式
  • SpringCloud-01 Rest学习环境搭建笔记
  • 基于APB与I2C的多主多从架构设计 - Function Description
  • Hibernate【inverse和cascade属性】知识要点
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Markdown 语法简单说明
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Vue全家桶实现一个Web App
  • 翻译:Hystrix - How To Use
  • 给Prometheus造假数据的方法
  • 构建二叉树进行数值数组的去重及优化
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 前端_面试
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 一些css基础学习笔记
  • 移动端唤起键盘时取消position:fixed定位
  • 鱼骨图 - 如何绘制?
  • const的用法,特别是用在函数前面与后面的区别
  • Prometheus VS InfluxDB
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (03)光刻——半导体电路的绘制
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (Oracle)SQL优化技巧(一):分页查询
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (四)模仿学习-完成后台管理页面查询
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转) Face-Resources
  • (转)jQuery 基础
  • ***利用Ms05002溢出找“肉鸡
  • .bat批处理(六):替换字符串中匹配的子串
  • .Net 高效开发之不可错过的实用工具
  • .NET中 MVC 工厂模式浅析
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @JsonSerialize注解的使用
  • @Not - Empty-Null-Blank
  • @synthesize和@dynamic分别有什么作用?
  • @TableLogic注解说明,以及对增删改查的影响
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证