基于OSS搭建私有 Docker Registry
Docker Registry 作为 Docker 的核心组件之一负责了镜像的存储以及分发。用户只需要使用 Docker 的客户端就可以直接和 Registry 进行交互,下载和上传镜像。最初版本的 Registry 由 Python 实现。由于设计初期在安全性,性能以及 API 的设计上有着诸多的缺陷,该版本在 0.9 之后停止了开发。新的项目由 Go 语言开发,所有的API,底层存储方式,系统架构都进行了全面的重新设计已解决上一代 Registry 中存在的问题。
准备工作
- 安装 Docker Engine
curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -
- 安装 Docker Compose
sudo curl -sSL http://mirrors.aliyun.com/docker-toolbox/linux/compose/1.7.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod a+x /usr/local/bin/docker-compose
- 配置加速器,下载 Registry 镜像
下载镜像之前,推荐先配置阿里云的加速器,可以节省大量下载镜像的时间。帮助链接
docker pull registry:2.4.1
部署私有 Docker Registry
- 为 Registry 相关的配置新建一个单独的目录
mkdir registry && cd registry
- 在当前目录下新建我们的账户密码(最简单的账户验证方式)
mkdir auth
htpasswd -Bbn admin 123456 > auth/htpasswd
- 在当前目录下新建我们的容器编排文件 docker-compose.yml
注意这个文件中的一些OSS相关的信息,例如AK、Bucket,需要用户根据自己的情况填写。
registry:
restart: always
image: registry:2.4.1
ports:
- 80:5000
volumes:
- ./auth:/auth
environment:
- REGISTRY_AUTH=htpasswd
- REGISTRY_AUTH_HTPASSWD_REALM=basic-realm
- REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
- REGISTRY_STORAGE=oss
- REGISTRY_STORAGE_OSS_ACCESSKEYID=<accesskey_id>
- REGISTRY_STORAGE_OSS_ACCESSKEYSECRET=<accesskey_secret>
- REGISTRY_STORAGE_OSS_REGION=<region_id>
- REGISTRY_STORAGE_OSS_BUCKET=<bucket_name>
详细的OSS STORAGE的配置文档在这里:https://docs.docker.com/registry/storage-drivers/oss/