我们下面介绍 docker 仓库管理。
1 简介
非常类似 Git 和 Github 的关系,Docker 和 Docker Hub 也是如此,Docker Hub 是 Docker 官方维护的一个公共仓库,用户可以在这里注册账号,推送自己的本地镜像到远程仓库。目前,绝大多数需求所需要的镜像都可以在 Docker Hub 上找到。
2 Docker Hub
这里以搜索 MySQL为例,我们介绍 Docker Hub 的使用。
首先我们在搜索框中输入 MySQL
,可以看到返回了很多结果:
我们选择第一个官方 MySQL
,点击之后会有详细的描述,包括版本信息,维护者,镜像拉取命令等:
我们就可以按照相应的说明在 docker 中使用它了。
3 私有仓库
Docker Hub 为我们提供了很多官方镜像和个人上传的镜像,我们可以下载机构或个人提供的镜像,也可以上传我们自己的本地镜像,然后我们需要的时候也可以随时下载。但缺点是:
(1)由于网络的原因,从 Docker Hub 上下载和上传镜像速度可能会比较慢。
(2)在生产上使用的 docker 镜像可能包含我们的代码、配置信息等,不想被外部人员获取,只允许内网的开发人员下载。如果上传到 Docker Hub 上所有人都可以看到。
使用 docker 私有仓库则解决了以上2个问题,在内部网络搭建 docker 私有仓库可以使内网人员下载和上传都非常快速,不受外网带宽等因素的影响,同时不在内网的人员无法下载我们的镜像。如今主流的私有仓库管理工具有两个:
- Docker官方提供的工具 docker-registry 可以用于构建私有的镜像仓库
- Harbor 是 VMware 公司最近开源的企业级 Docker Registry 项目,用于存储和分发 Docker 镜像的企业级Registry服务器。其目标是帮助用户迅速搭建一个企业级的Docker registry服务。它提供了管理UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。Harbor的每个组件都是以Docker容器的形式构建的,使用Docker Compose来对它进行部署。
如果想要向私有仓库中推送镜像有两种方法,一种是修改仓库服务器的Docker配置文件 daemon.json ,将仓库服务器配置为非安全服务器。另一种方式是配置TLS认证。