专栏首页无敌码农Docker私有镜像仓库是什么?

Docker私有镜像仓库是什么?

Docker镜像仓库概述

镜像仓库作为Docker技术的核心组件之一,其主要作用就是负责镜像内容的存储和分发。Docker镜像仓库从使用范围来说分为“公有镜像仓库”和“私有镜像仓库”,公有镜像仓库是可以被任何人使用的,例如Docker公司维护的在线存储库Docker Hub以及部分云服务厂商(如阿里云)提供的在线Docker镜像库等,都属于公有镜像仓库的范畴。

而私有镜像仓库则是指部署在公司或组织内部,用于自身应用Docker镜像存储、分发的镜像仓库。在构建公司内部使用的自动化发布系统的过程中,从安全的角度出发,应用的打包镜像一般情况下只会被存储在私有镜像仓库中,CI/CD流程的衔接点也是通过向私有镜像仓库上传镜像和拉取镜像的操作来完成的。

在现阶段主流的企业级私有镜像仓库构建方案中,比较流行的是:开源的企业级Docker镜像仓库——Harbor、以及商业镜像仓库——JFrog Artifactory。这两种Docker镜像仓库各自都有一定的市场,就作者所工作过的公司来说使用Harbor和JFrog Artifactory作为私有镜像仓库的都有,但就成熟度和功能性完整性来说JFrog Artifactory作为商业级解决方案会更具优势,所以目前国内有钱的互联网公司选择JFrog Artifactory作为企业级私有仓库的比较多,本文的主要内容是演示如何通过Docker的方式来快速部署JFrog Artifactory并将其作为Devops自动发布系统的私有镜像仓库。

JFrog Artifactory镜像仓库部署

根据官方介绍JFrogArtifactory是目前全球唯一一个支持所有开发语言,任意维度的元数据检索、跨语言正反向解析,并拥有深度递归、支持多活异地灾备的企业级、高可用二进制制品管理仓库。这里的二进制制品是指构建过程的输出物,包括软件包、测试报告,应用配置文件等可在服务器上直接运行或可查看的二进制软件制品。

JFrog Artifactory支持多种仓库类型,除了Docker镜像仓库外还支持Maven、Npm等其他类型的仓库。在正式企业级环境中镜像仓库的部署要考虑高可用、扩展性等要求,关于这方面的部署方式可以参考其他官方文档,本环节为了方便演示将采用Docker的方式进行部署,具体步骤如下:

1)、获取最新JFrog Artifactory社区版Docker镜像,命令如下:

$ docker pulldocker.bintray.io/jfrog/artifactory-jcr:latest

由于网络原因上述下载过程可能会比较慢,有条件的读者可以借助科学上网方式进行镜像获取。完成后可通过命令查看具体的镜像信息,如下:

$ docker images

2)、创建数据卷。考虑到镜像仓库作为持久化存储服务,这里为其创建单独的数据卷,命令如下:

#创建数据目录
$ mkdir -p ~/docker/volume/artifactory

#切换到上述目录后执行数据卷创建命令
$ docker volume create data_artifactory

3)、运行Docker容器,命令如下:

$ docker run --name jfrog-artifactory -d-v data_artifactory:/var/opt/jfrog/artifactory -p : -p :docker.bintray.io/jfrog/artifactory-jcr:latest

完成上述操作后,如果容器运行成功,此时浏览器输入访问地址:http://127.0.0.1:8082,将会显示如图所示界面:

输入初始密码(admin/password)后,会继续跳转到管理员密码重置界面,如图所示:

依据步骤设置好管理员密码。之后会继续要求设置如订阅邮箱、访问网站域名、代理配置等信息,这里可以暂时忽略直接跳到仓库创建的页面,如图所示:

从上图可以看到JFrogArtifactory支持多种类型的仓库,例如Maven私有仓库也可以通过JFrog Artifactory来进行配置,由于是社区版所以很多其他类型的仓库并未免费开放!这里我们只选择创建Docker镜像仓库,创建后效果如图所示:

如上图所示,默认创建了一个RepositoryKey为docker-local的本地仓库。在实际工作场景中为了便于Docker镜像的管理,可以分别为同一代码空间的项目创建单独的镜像仓库,例如我们本书中所有的Spring Cloud实战项目创建一个单独镜像仓库,点击右上角“New LocalRepository”,如图所示:

到这里JFrog Repository容器镜像仓库的基本部署工作就完成了,后面自动化发布系统中的CI/CD流程将以此为基础实现Docker镜像的存储、分发!关注我后续的内容将向你介绍如何构建一套完整的CI/CD自动发布系统!

本文分享自微信公众号 - 无敌码农(jiangqiaodege),作者:无敌码农

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一分钟上手Docker容器

    在微服务时代,服务数量及规模越来越大,服务的部署及运维的模式如果仍然采用传统方式就会大大增加运维成本。所以微服务时代的运维方式一定是Devops模式,通过构建自...

    用户5927304
  • Kubernetes微服务自动化发布系统

    实施微服务架构后,原先单一的系统结构统变成了数量众多的微服务应用,开发、测试、运维部署等都会面临不少挑战。在微服务架构下如何提高工程研发效率,确保开发、测试、运...

    用户5927304
  • Spring Cloud微服务如何设计异常处理机制?

    今天和大家聊一下在采用Spring Cloud进行微服务架构设计时,微服务之间调用时异常处理机制应该如何设计的问题。我们知道在进行微服务架构设计时,一个微服务一...

    用户5927304
  • Docker的核心概念,镜像操作

    简介 在实际使用Docker的过程中,遇到一些问题,但是总没有系统的博文可以详细的介绍Docker,所以个人写一个由浅入深的系统学习Docker过程。 这里首...

    牛嗷嗷
  • 轻量级容器Docker的核心概念

    image.png Docker镜像 Docker镜像(Image)类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统 例如:一...

    dys
  • 使用Docker构建企业级自定义镜像

    临下班前,楼主接到了一个需求,由于基础镜像标准发生变更,需要按照最新的Docker 镜像标准构建自己应用的自定义镜像。目前的标准是这样的:基础架构组只提供所有项...

    码农小胖哥
  • Docker 下载镜像

    要运行容器,就必须保证本地存在对应的镜像。所以,第一步是需要下载镜像。当尝试下载镜像时,Docker 会尝试先从默认的镜像仓库(默认使用 Docker Hub ...

    happyJared
  • Docker学习笔记--仓库

    仓库时几种存放镜像的地方,分为公共仓库和私有仓库。本节将讲解官方公共镜像市场、第三方镜像市场和搭建本地私有镜像仓库的方法。

    喵叔
  • 谈谈 Docker 镜像构建

    容器化部署越来越多的用于企业的生产环境中,如何构建可靠、安全、最小化的 Docker 镜像也就越来越重要。本文将针对该问题,通过原理加实践的方式,从头到脚帮你撸...

    iMike
  • 优化docker镜像的几种方法

    Devops和k8s的火热,越来越多的企业将docker运用到自动化运维中,不管是为了保证开发、测试、生产环境的环境一致性,还是和CI/CD工具的集成度,比如j...

    李俊鹏

扫码关注云+社区

领取腾讯云代金券