赞
踩
私有仓库应用时,为了保证安全,可能会进行一些安装保障,docker-registry-web允许开启鉴权认证,需要PEM格式的RSA私钥和证书。
服务器信息
服务器IP | 服务器功能描述 |
---|---|
192.168.20.50 | 用于基于docker-registry-web镜像的容器 |
192.168.20.53 | 用于基于Docker Registry镜像的容器 |
基于认证配置
1) 使用OpenSSL创建证书文件。
操作服务器: 192.168.20.53。
① 确认OpenSSL是否已安装。
openssl version
② 若为安装,先安装OpenSSL。
apt-get update
apt-get install -y openssl
③ 进入目录securitit/registry/certs/
(根据自身需求创建即可),执行命令创建.crt
和.key
证书文件。
openssl req -new -newkey rsa:4096 -days 365 -subj "/CN=localhost" -nodes -x509 -keyout /securitit/registry/auth/auth.key -out /securitit/registry/auth/auth.cert
2) 基于Docker Registry镜像提供私有仓库服务。
操作服务器: 192.168.20.53。
进入/securitit/registry/conf
目录(根据自身需求而定),新建registry-srv.yml配置文件。
version: 0.1
storage:
filesystem:
rootdirectory: /var/lib/registry
http:
addr: 0.0.0.0:5000
auth:
token:
# registry-web的地址.
realm: http://192.168.20.50:8080/api/auth
# 私有仓库的配置地址.
service: 192.168.20.53:5000
# 需要与registry-web定义的名称一致.
issuer: 'my issuer'
# 容器内证书路径,容器启动时通过数据卷参数指定.
rootcertbundle: /etc/docker/registry/auth.cert
通过如下命令基于registry镜像启动容器。
docker run -v /securitit/registry/conf/registry-srv.yml:/etc/docker/registry/config.yml:ro \
-v /securitit/registry/auth/auth.cert:/etc/docker/registry/auth.cert:ro -p 5000:5000 --name registry-srv -d registry
3) 基于docker-registry-web镜像提供私有仓库Web UI服务。
操作服务器: 192.168.20.50。
将 1) 中生产的auth.key
文件通过FTP工具传输到当前服务器中,本示例传输至/securitit/registry/auth/
。
进入/securitit/registry/conf
目录(根据自身需求而定),新建registry-web.yml配置文件。
registry:
# 私有仓库地址.
url: http://192.168.20.53:5000/v2
# 私有仓库命名.
name: 192.168.20.53:5000
# 是否只读设置.
readonly: false
auth:
# 是否进行鉴权处理.
enabled: true
# 需要与私有仓库定义的名称一致.
issuer: 'my issuer'
# 容器内私钥证书路径,容器启动时通过数据卷参数指定.
key: /conf/auth.key
通过如下命令基于docker-registry-web镜像启动容器。
docker run -it -d -v /securitit/registry/conf/registry-web.yml:/conf/config.yml:ro \
-v /securitit/registry/auth/auth.key:/conf/auth.key -v /securitit/registry/db:/data \
-p 8080:8080 --name registry-web hyper/docker-registry-web
访问http://192.168.20.50:8080/,默认用户名和密码是admin/admin。
docker-registry-web 角色管理
首次启动后,默认用户admin/admin将会获得如下角色:
· UI_ADMIN
· UI_USER
· UI_DELETE
· read-all
· write-all
可以删除或修改UI_ADMIN
和UI_USER
,这两个角色用来指定角色允许admin和user访问UI系统。
UI_USER
角色允许查询镜像仓库。
UI_ADMIN
角色相比UI_USER
角色,允许创建、删除和修改镜像仓库。
UI_DELETE
角色允许基于ACL策略删除镜像。
总结
《Dockerfile Registry WebUI 之 docker-registry-frontend 基础应用》和《Dockerfile Registry WebUI 之 docker-registry-frontend 高级应用》讲解了docker-registry-frontend的使用,《Dockerfile Registry WebUI 之 docker-registry-web 基础应用》和本文讲解了docker-registry-web的使用。相对于docker-registry-frontend来说,docker-registry-web提供的功能更加丰富,并且对于使用来说,docker-registry-web通过配置文件的方式,更加友好,且易于后期维护,两者建议选择docker-registry-web。
若文中存在错误和不足,欢迎指正!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。