利用registry镜像搭建私有仓库不在赘述
基于官方镜像只能实现不设置账户 任意可读写
或者必须登录才可以读写 没有只读账户 不好公开给他人使用
如果用harbor做 harbor启用了太多容器 其实比较重了,大部分功能个人用户也用不到 而且官方只提供了安装脚本的部署方案
实际上不太友好,本身安装脚本使安装过程不透明 启动容器又多 不像gitlab镜像 虽然本身需要很多服务 但是都封装在一个镜像内,对用户而言,部署和迁移都是一键比较容易的事
所以这边公开一个自用的方案
client_body_buffer_size 5120m;
client_max_body_size 5120m;
underscores_in_headers on;
auth_basic "登录验证";
auth_basic_user_file /www/wwwroot/docker.nikm.cn/auth;
if ($http_authorization !~ "Basic xxxx"){
set $iftmp Y;
}
if ($request_method !~ GET) {
set $iftmp "${iftmp}Y";
}
if ($iftmp = YY){
return 401;
}
location /v2 {
proxy_pass http://10.10.10.103:5500;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Cookie $http_cookie;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
利用nginx的401 生成两个用户auth文件过程自行百度
然后获取你想要可读写的用户 登录以后的浏览器Basic xxx 写到nginx配置文件里
判断 如果登录用户不是自己想要的用户 并且请求了非GET请求 那么就返回一个401 阻止掉对私有镜像仓库的写操作
如果是其他用户 那么正常登录 并且访问GET请求 就正常往下执行反代registry容器的操作
并且该方案在docker_ui docker_cli 只读和可读写账户都测试通过
版权属于:本文是原创文章,版权归 吾梦小站 所有。
本文链接:https://www.nikm.cn/archives/63.html
本站所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由地转载和修改,但请务必注明文章来源并且不可用于商业目的。