kubernetes Spring Cloud 微服务架构—(8)Kubernetes spring cloud 微服务-Registry 私有镜像仓库

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 第 8 章 Registry 私有镜像仓库 本章节讲解私有仓库的工作流程, 主要是了解Docker怎么获取镜像的过程,怎样搭建属于自己的私有仓库,客户端怎样推送镜像到私有仓库,以及私有仓库的管理方法。 学过之前的章节应该会明白,容器运行是需要启动镜像,那么有了镜像,就需要有仓库存放,提供给客户端下载使用, 所以这个就是私有仓库的由来。 前面的章节已经讲了镜像的拉取流程, 以及镜像的存储机制。这节主要讲私有仓库Registry 的搭建。而在实际的生产过程中会使用到Harbor, 在Spring Cloud 与 Kubernetes 课程中会详细的讲解搭建与部署规划。 本章节的

8.0 私有镜像仓库简介

Docker Registry:官方docker镜像存储、管理和分发工具。

 

部署私有仓库可以解决以下问题:

1)   下载镜像时所带来的网络延时。

2)   方便镜像版本的更新与维护

3)部署私有应用程序


8.1 私有镜像仓库工作流程

1)用户本地构建镜像,将镜像推送到Registry仓库.

2) Docker 用户使用的时候,直接从Registry 下载, 无须从Docker Hub 下载.

8.2 搭建私有仓库

官方提供的私有仓库镜像,无需调整,直接使用。将宿主机目录挂载到容器中,提供数据持久化。镜像名称:registry,默认使用       新版。 
#挂载宿主机/opt/myregistry目录到容器目录/var/lib/registry
[root@docker01 ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry

/

8.3 上传本地镜像至私有仓库

#给镜像打tag 标签,要写全镜像仓库地址。 
[root@master mnt]# docker image tag centos:latest 192.168.91.8:5000/centos7:v1.0 
#上传镜像到私有仓库 
[root@master mnt]# docker push 192.168.91.8:5000/centos7:v1.0 
注:报错 
The push refers to repository [192.168.91.8:5000/centos7] 
Get https://192.168.91.8:5000/v2/: http: server gave HTTP response to HTTPS client 
出现https 错误解决方法有两种: 
1) 修改Docker 节点配置文件 (本案例中) 
2) 添加Nginx 反向代理 
解决办法:修改配置文件,建立信任 
[root@docker01 ~]#  vi /etc/docker/daemon.json 
{ 
"insecure-registries": ["192.168.91.8:5000"] 
} 
#重启docker 服务 
[root@docker01 ~]# systemctl restart docker 
#再次推送镜像 
[root@master mnt]# docker push 192.168.91.8:5000/centos7:v1.0 
The push refers to repository [192.168.91.8:5000/centos7] 
0683de282177: Pushing [========>                       ]   38.8MB/237.1MB


/

8.4 查看私有仓库镜像列表

[root@master mnt]# curl http://192.168.91.8:5000/v2/_catalog

{"repositories":["centos7"]}

8.5 删除私有仓库中镜像


/

1)进入docker registry 的容器中 
[root@docker01 ~]# docker exec -it registry /bin/sh 
2)     删除指定镜像目录文件 
/ # rm -fr /var/lib/registry/docker/registry/v2/repositories/centos7 
3)     清理掉blob 
/ # registry garbage-collect /etc/docker/registry/config.yml 
4)     再次查看版本库 
[root@master mnt]#  curl http://192.168.91.8:5000/v2/_catalog 
{"repositories":[]}


 

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
13天前
|
缓存 监控 API
【微服务战场上的神秘守门人】:揭秘API网关的超能力 —— 探索微服务架构中的终极守护者与它的神奇魔法!
【8月更文挑战第7天】随着微服务架构的流行,企业应用被拆分为围绕特定业务功能构建的小型服务。API网关作为微服务间的通信管理核心,对请求进行路由、认证、限流等处理,简化客户端集成并提升用户体验。以电商应用为例,通过Kong部署API网关,配置产品目录等服务的API及JWT认证插件,确保安全高效的数据交互。这种方式不仅增强了系统的可维护性和扩展性,还提供了额外的安全保障。
31 2
|
17天前
|
消息中间件 监控 Java
解锁Spring Cloud微服务架构的奥秘:深度剖析拆分原则,打造高内聚低耦合的业务创新引擎!
【8月更文挑战第3天】踏入微服务领域,Spring Cloud以丰富组件助力高效系统构建。微服务拆分需遵循原则确保系统高内聚低耦合且能适应变化。首要原则为单一职责,每个服务专注一个业务功能,降低复杂度并提高可维护性。其次,追求高内聚低耦合以减少服务间影响。围绕业务域拆分有助于保持逻辑清晰及团队协作。处理数据一致性问题时,考虑采用最终一致性模型。Spring Cloud提供Eureka、Zuul/Gateway、Sleuth和Config等工具支持服务发现、路由、跟踪及配置管理,共同构建灵活健壮的微服务架构。
32 2
|
2月前
|
负载均衡 Java 开发者
Spring Cloud微服务架构中的配置管理与服务发现
Spring Cloud微服务架构中的配置管理与服务发现
|
2月前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【6月更文挑战第30天】Spring Cloud是Java微服务治理明星框架,整合Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(断路器)、Zuul(API网关)和Config Server(配置中心),提供完整服务治理解决方案。通过Eureka实现服务注册与发现,Ribbon进行负载均衡,Hystrix确保服务容错,Config Server集中管理配置,Zuul则作为API入口统一处理请求。理解和使用Spring Cloud是现代Java开发者的关键技能。
102 2
|
1月前
|
监控 Java API
Java面试题:解释微服务架构的概念及其优缺点,讨论微服务拆分的原则。
Java面试题:解释微服务架构的概念及其优缺点,讨论微服务拆分的原则。
48 0
|
1月前
|
负载均衡 Java 开发者
Spring Cloud微服务架构中的配置管理与服务发现
Spring Cloud微服务架构中的配置管理与服务发现
|
1月前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【7月更文挑战第1天】Spring Cloud是Java微服务治理明星框架,整合Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心),提供完整服务治理解决方案。通过Eureka实现服务注册与发现,Ribbon进行客户端负载均衡,Hystrix确保服务容错,Config Server集中管理配置,Zuul作为API网关简化系统复杂性。理解和使用Spring Cloud是现代Java开发者的关键技能。
60 0
|
23小时前
|
Kubernetes 网络安全 Docker
在k8S中,Worker节点加入集群的过程是什么?
在k8S中,Worker节点加入集群的过程是什么?
|
23小时前
|
Kubernetes 安全 数据安全/隐私保护
在k8S中,如何保证集群的安全性?
在k8S中,如何保证集群的安全性?