- 本文地址: https://www.yangdx.com/2020/11/171.html
- 转载请注明出处
一、前言
前一篇我们介绍了《Docker 私有仓库搭建》,但是搭建完的私有仓库没有 UI 管理界面,操作很不方便。我们可以借助第三方 registry-web 镜像来实现界面化管理,目前比较流行的镜像包是 hyper/docker-registry-web。
二、快速搭建
通过两条 docker run 指令快速搭建:
docker run -d -p 5000:5000 --name registry-srv registry:2
docker run -it -p 8080:8080 --name registry-web --link registry-srv -e REGISTRY_URL=http://registry-srv:5000/v2 -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web
我们将私有仓库的容器命名为 registry-srv,将 WebUI 管理容器命名为 registry-web,第2条指令的 --link 参数让 registry-srv 和 registry-web 做连接,这样我们在 registry-web 内部就可以通过 registry-srv:5000 地址来访问私有仓库了。
我们 push 几个镜像到私有仓库,在浏览器中打开 http://localhost:8080/
,展示如下:
三、开启删除功能
默认的,这样搭建的管理界面没有登录功能,也不支持镜像删除。
如果要支持删除功能,请按以下步骤操作:
- 进入 registry-srv 容器,编辑 /etc/docker/registry/config.yml 文件,添加 delete 支持:
- 进入 registry-web 容器,编辑 /conf/config.yml 文件,将 readonly 设为 false:
- 重启 registry-srv 和 registry-web 容器,刷新管理页面,这时候就可以看到删除按钮了:
在实际应用中,我们应该将配置文件和数据目录从容器里分离出来,使用 volume 挂载到容器中,避免删除容器后数据丢失。
四、容器编排
使用 docker-compose 进行容器编排,可以大大提高我们的工作效率。
docker-registry-web 官方项目提供了3个方案示例:
- 方案1:无身份认证 - 匿名访问
- 方案2:启用身份认证
- 方案3:启用身份认证 - Nginx代理
本人经过实验,发现原文有些许纰漏,已做修改,最新 docker-compose 代码见:https://gitee.com/yangrz/docker-registry-web
快来评论一下吧!
发表评论