LOADING

Follow me

DOCKER镜像仓库管理【zoues.com】
一月 13, 2017|DockerPaaS

DOCKER镜像仓库管理【zoues.com】

DOCKER镜像仓库管理【zoues.com】

               前言

容器化的实现场景越来越广泛,而容器技术突出的优点就是开发运维一体化。通过把应用及其所依赖的软件包、操作系统文件等封装在容器镜像中,使得应用在开发、测试和发布过程中都具有相同的运行环境,带来极大的便利。

DOCKER镜像仓库管理

图1 Docker容器状态转换图

(图片来自docker官网)

从图1这张经典的Docker容器状态转换图可以看到,容器镜像(images)的关联箭头最多,不言而喻,镜像的管理尤为重要。基于云宏信达在大数据能力平台方面的研究,下面对容器镜像仓库及镜像仓库管理做简单介绍。

从图1这张经典的Docker容器状态转换图可以看到,容器镜像(images)的关联箭头最多,不言而喻,镜像的管理尤为重要。基于云宏信达在大数据能力平台方面的研究,下面对容器镜像仓库及镜像仓库管理做简单介绍。

镜像仓库介绍

容器镜像的管理主要围绕镜像仓库(Registry)来进行。Registry用以保存Docker镜像,其中还包括镜像层次结构和关于镜像的元数据,可以将Registry简单地想象成类似于Git仓库之类的实体。

DOCKER镜像仓库管理

图2 Registry目录结构

Registry由一系列经过命名的Repository组成(如图2),Repository即由具有某个功能的Docker镜像的所有迭代版本构成的镜像库,通过命名规范对用户仓库和顶层仓库进行区分,例如yourregistryDomain/library/ubuntu,yourregistryDomain可以是非安全的镜像库,IP:5000也可以是镜像库访问域名,library可以理解为某个project,ubuntu即为Repository;此处可能会产生疑问,通常ubuntu为镜像名,这里却解释为Repository,事实上Repository是一个镜像的集合,其中包含了不同版本的镜像,使用标签进行版本区分,如ubuntu:14.04、ubuntu:12.04等,它们均属于ubuntu镜像库。总而言之,Registry是Repository的集合,Repository是镜像的集合。

在应用的生命周期中,无论开发人员,还是测试人员或运维人员下载镜像,都要通过Registry来完成。Registry可以使用公有SaaS服务,例如Docker Hub。公有服务的优点是可直接使用,无需自己维护。但考虑到访问效率和镜像安全等方面的原因,大多数公司都建立了自己的私有Registry,因此也需要有贯穿整个应用生命周期的镜像管理策略。

镜像仓库管理

作为企业级的镜像库管理,云宏信达在docker官方提供的registry镜像基础上做了镜像库权限管理、用户权限管理等。

在企业中,通常有不同的开发团队来负责不同的应用项目,和源代码分项目管理一样,镜像也需要按照项目来存放和管理。由于项目团队中有不同的成员,如项目经理、产品经理、开发、测试和运维等人员,每种人员使用镜像的需求不同,因此可以根据角色分配相应的权限。

DOCKER镜像仓库管理

图3 Registry项目权限

在云宏信达的私有Registry中,镜像所处项目可以选择公开即允许匿名用户访问,在不使用docker login也可以pull镜像;项目也可以选择私有,即仅允许授权用户读写。每个项目中可有三种角色:项目管理员(project admin)、开发者(developer)和访客(guest),如图3所示。访客只有读权限(pull),开发人员具有读写权限(push/pull),项目管理员除了拥有开发人员的权限之外,还可以增加和删除项目成员,设定他们的角色。在整个系统中,还设有系统管理员,具有维护镜像同步策略、用户增删等权限。

容器镜像库的管理是应用容器化的一个重要环节,在实际场景/案例中会有更加复杂的要求及功能实现,云宏信达在不断地进行探索与创新,为打造一个企业级能力平台而努力。

未经允许禁止转载

DOCKER镜像仓库管理

请长按二维码

关注云宏信达

DOCKER镜像仓库管理

no comments
Share

发表评论