写点什么

镜像仓库学习笔记

用户头像
lenka
关注
发布于: 2021 年 03 月 24 日

一、镜像

镜像一般指 Docker 镜像,是一个 Linux 的文件系统(Root FileSystem),这个文件系统里面包含可以运行在 Linux 内核的程序以及相应的数据。

一般而言, Linux 分为两个部分:Linux 内核(Linux Kernel)与用户空间,而真正的 Linux 操作系统,是指 Linux 内核,我们常用的 Ubuntu、CentOS 等操作系统其实是不同厂商在 Linux 内核基础上添加自己的软件与工具集(tools)形成的发布版本(Linux Distribution)。

因此,我们也可以把镜像看成是上面所说的用户空间,当 Docker 通过镜像创建一个容器时,就是将镜像定义好的用户空间作为独立隔离的进程运行在宿主机的 Linux 内核之上。

镜像的两个特征:

  1. 镜像是分层(Layer)的:即一个镜像可以多个中间层组成,多个镜像可以共享同一中间层,我们也可以通过在镜像添加多一层来生成一个新的镜像。

  2. 镜像是只读的(read-only):镜像在构建完成之后,便不可以再修改,而上面我们所说的添加一层构建新的镜像,这中间实际是通过创建一个临时的容器,在容器上增加或删除文件,从而形成新的镜像,因为容器是可以动态改变的。

二、仓库

镜像仓库分为公共仓库和私有仓库。

公共仓库一般是指 Docker Hub,除了获取镜像外,我们也可以将自己构建的镜像存放到 Docker Hub,这样,别人也可以使用我们构建的镜像。

有时候自己部门内部有一些镜像要共享时,如果直接导出镜像拿给别人又比较麻烦,使用像 Docker Hub 这样的公共仓库又不是很方便,这时候我们可以自己搭建属于自己的私有仓库服务,用于存储和分布我们的镜像。Docker 官方提供了 registry 这个镜像,可以用于搭建私有仓库服务。

三、开源镜像仓库

1、Docker Registry

Docker Registry 是最流行的开源私有镜像仓库,以镜像格式发布,在下载后运行一个 Docker Registry 容器即可启动一个私有镜像仓库服务:

Docker Registry 的有点如下:

(1)Docker Registry 的最大优点就是简单,只需要运行一个容器就能集中管理一个集群范围内的镜像,其他机器就能从该镜像仓库下载镜像了。

(2)在安全性方面,Docker Registry 支持 TLS 和基于签名的身份验证。

(3)Docker Registry 也提供了 Restful API,以提供外部系统调用和管理镜像库中的镜像

2、VMware Harbor

VMware Harbor(简称 Harbor)项目是由 VMware 中国研发团队开发的开源容器镜像仓库系统,基于 Docker Registry 并对其进行了许多增强,主要特性包括:

  • 基于角色的访问控制

  • 镜像复制

  • Web UI 管理界面

  • 可以集成 LDAP 或 AD 用户认证系统

  • 审计日志

  • 提供 RESTful API 以提供外部客户端调用

  • 镜像安全漏洞扫描(从 v1.2 版本开始集成了 Clair 景象扫描工具)

3、Sonatype Nexus

Sonatype Nexus 是一个软件仓库管理器,主要有 2.X 和 3.X 两个大版本。2.X 版本主要支持 Maven、P2、OBR、Yum 等仓库软件;3.X 版本主要支持 Docker、NuGet、npm、Bower、PyPI、Ruby Gems、Apt、Conam、R、CPAN、Raw、Helm 等仓库软件,也支持构建工具 Maven。

Sonatype Nexus 的特点如下:

  • 部署简单,通过启动一个容器即可完成

docker run -d --name nexus -p 5000:5000 -p 8081:8081 sonatype/ docker.io/sonatype/nexus3

  • 支持 TLS 安全认证

  • 提供 Web UI 管理界面

  • 支持代理仓库(Docker Proxy),可以将到 Nexus 镜像仓库的操作代理到另一个远程镜像库

  • 支持仓库组(Docker Group),可以把多个仓库组合成一个地址提供服务

  • 除了支持 Docker 镜像,还支持对其他软件仓库的管理,例如:Yum、Npm 等。目前不支持 APK(alpine 系统软件仓库)

4、SUSE Portus

SUSE Portus 是另一个开源镜像库,其特点包括:

  • 基于组(Team)和命名空间(Namespace)的细粒度访问权限控制

  • Web UI 管理界面

  • 可以集成 LDAP 用户认证系统,也支持 OAuth

  • 审计日志

  • 提供 RESTful API,以供外部客户端调用


用户头像

lenka

关注

还未添加个人签名 2018.03.29 加入

还未添加个人简介

评论

发布
暂无评论
镜像仓库学习笔记