将Nexus作为容器镜像仓库的配置过程

开源
开源和容器化重新设计了一种高效的价值流,可以为多种类型的生态系统构建多种类型的应用程序,但是组织如何使用几种不同的公共来源(或注册表)来存储,管理和部署其容器化应用程序?

[[395763]]

在过去的十年中,开发人员经历了打包和部署应用程序和底层操作系统的方式的转变。Docker容器和最流行的开源容器编排系统Kubernetes(K8)的使用率上升,已经改变了软件供应链。一方面,开发,测试和生产团队可以获得将代码及其所有依赖性打包到容器中的优势。另一方面,随着每一项新技术的产生,出现了新的包装管理系统的复杂性。

开源和容器化重新设计了一种高效的价值流,可以为多种类型的生态系统构建多种类型的应用程序,但是组织如何使用几种不同的公共来源(或注册表)来存储,管理和部署其容器化应用程序?

Docker,Helm和Kubernetes的简化容器管理

Nexus Repository建立在广泛的企业存储功能之上,是适用于所有Docker镜像和Helm Chart存储库的强大的注册表。Nexus Repository由广泛的用户社区支持,部署了超过500万个实例,支持全球1,200多家组织-600多家大型企业客户。团队可以选择使用Nexus Repository OSS高性能和完全免费的容器注册表,或者在需要企业可伸缩性和功能时选择Nexus Repository Pro。

与Docker Hub或Helm不同,开发团队将Nexus Repository作为所有公共注册表的中央访问点,从而为容器管理提供了更高效,更稳定的解决方案。除了在整个CI/CD构建管道中进行集成之外,使用完全支持的企业级容器注册表还具有许多好处。

多种存储库类型

Nexus存储库通过Proxy,Hosted和Group存储库支持Docker镜像和Helm 3存储库,从而使用户可以跨开发团队使用高级容器管理功能。

代理存储库 -通过为Docker Hub或任何其他Docker镜像的远程注册表设置代理存储库,减少重复下载并提高开发人员和CI服务器的下载速度。在本地缓存图像,以加快上市时间并确保本地访问控制。

托管存储库-使用Nexus存储库将您自己的容器映像以及第三方映像上载到私有Docker注册表。这些注册表的细粒度权限为开发团队和组织提供了增强的安全性。

存储库组-允许用户从组中的所有存储库中提取映像,而无需在初始设置后进行任何其他客户端配置。组存储库使您可以使用工具的一个URL来访问多个代理和托管存储库的聚合内容。

创建Docker镜像仓库

创建一个Hosted类型的仓库,设置HTTP模式访问,端口为8090。

更新Neuxs Service,添加8090端口。

  1. apiVersion: v1 
  2. kind: Service 
  3. metadata: 
  4.  name: nexus3 
  5.  namespace: devops 
  6.  labels: 
  7.    k8s-app: nexus3 
  8. spec: 
  9.  selector: 
  10.    k8s-app: nexus3 
  11.  ports: 
  12.  - name: web 
  13.    port: 8081 
  14.    targetPort: 8081 
  15.  - name: web2 
  16.    port: 8083 
  17.    targetPort: 8083 
  18.  - name: docker 
  19.    port: 8090 
  20.    targetPort: 8090 

更新Neuxs Ingress,设置域名为registry.idevops.site

  1. - host: registry.idevops.site 
  2.     http: 
  3.      paths: 
  4.      - path: / 
  5.        backend: 
  6.           serviceName: nexus3 
  7.           servicePort: 8090 

查看Nexus pod日志会发现已经启动了。

登录镜像仓库

  1. ## 默认HTTPS会提示错误 
  2. [root@zeyang-nuc-service ~]# docker login registry.idevops.site 
  3. Username: admin 
  4. Password
  5. Error response from daemon: Get https://registry.idevops.site/v2/: dial tcp 192.168.1.230:443: connectconnection refused 
  6.  
  7.  
  8. ## 更新docker配置 
  9. [root@zeyang-nuc-service ~]# vim /etc/docker/daemon.json 
  10.  "exec-opts":["native.cgroupdriver=systemd"], 
  11.  "registry-mirrors": ["https://c9ojlmr5.mirror.aliyuncs.com"], 
  12.  "insecure-registries" : ["192.168.1.200:8088","registry.idevops.site"
  13.  
  14. [root@zeyang-nuc-service ~]# systemctl daemon-reload 
  15. [root@zeyang-nuc-service ~]# systemctl restart docker 
  16.  
  17.  
  18. ## 再次登录 
  19. [root@zeyang-nuc-service ~]# docker login registry.idevops.site 
  20. Username: admin 
  21. Password
  22. WARNING! Your password will be stored unencrypted in /root/.docker/config.json. 
  23. Configure a credential helper to remove this warning. See 
  24. https://docs.docker.com/engine/reference/commandline/login/#credentials-store 
  25.  
  26. Login Succeeded 

测试上传镜像

  1. [root@zeyang-nuc-service ~]# docker tag mysql:5.7 registry.idevops.site/library/mysql:5.7 
  2. [root@zeyang-nuc-service ~]# docker push registry.idevops.site/library/mysql:5.7 
  3. The push refers to repository [registry.idevops.site/library/mysql] 
  4. c187f0dccfe2: Pushed 
  5. a45abaac81d1: Pushed 
  6. 71c5f5690aef: Pushed 
  7. 8df989cb6670: Pushed 
  8. f358b00d8ce7: Pushed 
  9. ae39983d39c4: Pushed 
  10. b55e8d7c5659: Pushed 
  11. e8fd11b2289c: Pushed 
  12. e9affce9cbe8: Pushed 
  13. 316393412e04: Pushed 
  14. d0f104dc0a1f: Pushed 
  15. 5.7: digest: sha256:55638620c5a206833217dff4685e0715fb297a8458aa07c5fe5d8730cc6c872f size: 2621 

在nexus中验证.


Nexus作为容器注册表,通过用于容器存储管理和K8s部署的Docker和Helm注册表为企业提供动力。随着DevOps团队规模的扩大,至关重要的是要依靠有关应用程序中开源组件质量的精确报告。Nexus Lifecycle向开发人员和安全专家提供有关安全漏洞,许可风险和体系结构质量的开源组件智能。寻求完全集成的通用容器管理注册表以及最精确的组件智能的组织,可以使用Nexus平台来满足不断增长的容器化和开源治理的需求。

 

责任编辑:姜华 来源: DevOps云学堂
相关推荐

2020-09-29 09:26:36

Nexus

2019-08-18 23:46:52

私有云容器镜像仓库

2010-08-06 11:04:42

Nexus OneAndroid测试Android开发

2015-04-03 10:43:49

2022-09-16 10:19:36

HarborContainerd

2018-07-23 08:32:49

分布式镜像仓库

2024-09-06 09:48:06

2021-12-22 10:45:56

Docker RegiHarborLinux

2009-06-09 16:17:45

SQL Server

2009-07-08 14:22:36

Servlet容器匹配过程

2021-02-22 11:35:55

Windows编程开发

2011-05-06 14:52:14

Nexus TAndroid 3.1平板电脑

2020-11-27 15:30:01

编程语言代码 Node.js

2019-05-22 15:36:22

Linux容器镜像

2013-08-12 09:21:41

谷歌Nexus 7镜像源码

2012-07-05 09:33:49

Nexus 7

2019-10-16 10:08:58

DockerLinuxWindows

2011-03-22 10:10:21

Nagios配置

2021-09-08 19:46:11

容器镜像Linux

2012-04-10 10:04:26

核心交换机
点赞
收藏

51CTO技术栈公众号