资讯详情

资讯详情

Linux学习25-harbor私有仓库部署

harbor企业级私有仓库简介Docker容器应用的开发和运行离不开可靠的镜像管理虽然Docker官方也提供了公共的镜像仓库但是从安全和效率等方面考虑部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能安装harbor删除之前部署的registry不然会冲突[rootserver1 ~]# docker rm -f registry部署证书[rootserver1 ~ ]# mkdir /data [rootserver1 ~ ]# cp -r certs /data[rootserver1 ~]# tar zxf harbor-offline-installer-v2.14.0.tgz [rootserver1 ~]# cd harbor/ [rootserver1 harbor]# cp harbor.yml.tmpl harbor.yml [rootserver1 harbor]# vim harbor.yml hostname: reg.westos.org http: # port for http, default is 80. If https enabled, this port will redirect to https port port: 80 https: # https port for harbor, default is 443 port: 443 # The path of cert and key files for nginx certificate: /data/certs/westos.org.crt private_key: /data/certs/westos.org.key ... harbor_admin_password: westos部署harbor[rootserver1 harbor]# ./install.sh --with-trivy备注prepare 脚本是 Harbor 部署的 “预处理器”通过解析配置、生成运行时文件、验证环境依赖将用户的抽象配置转化为可直接启动的容器编排规则是连接配置与实际运行的关键步骤。使用场景prepare 脚本通常在以下阶段执行首次部署 Harbor 前执行 ./prepare 生成初始配置修改 harbor.yml 后需重新执行 ./prepare 使配置生效会更新 docker-compose.yml 及相关文件升级 Harbor 版本时用于适配新配置并生成兼容的启动文件查看镜像查看启动的容器浏览器访问会提示不安全继续前往用户名admin密码westos成功进入harbor使用登录仓库给镜像打标签[rootserver1 ~]# docker tag busybox:latestreg.westos.org/library/busybox:latest[rootserver1 ~]# docker tag nginx:latest reg.westos.org/library/nginx:latest上传镜像[rootserver1 ~]# docker push reg.westos.org/library/nginx:latest[rootserver1 ~]# docker push reg.westos.org/library/busybox:latest配置默认仓库[rootserver2 ~]# vim /etc/docker/daemon.json{registry-mirrors: [https://reg.westos.org]}[rootserver2 ~]# systemctl restart dockerlibrary项目中的镜像下载时可以直接写镜像名称[rootserver2 ~]# docker pull nginx公共仓库支持匿名拉取创建私有仓库新建用户授权维护私有仓库私有仓库上传下载都需要认证并且还要指定仓库域名[rootserver1 ~]# docker tag ubuntu:latest reg.westos.org/westos/ubuntu:latest[rootserver1 ~]# docker push reg.westos.org/westos/ubuntu:latest[rootserver2 ~]# docker login reg.westos.orgUsername: wxhPassword: ***[rootserver2 ~]# docker pull reg.westos.org/westos/ubuntuHarbor复制同步在大规模集群环境下如果所有 Docker 主机都从一个镜像仓库中拉取镜像那么此镜像仓库很可能会成为镜像分发的瓶颈影响镜像分发的速度。可以通过搭建多个镜像仓库并配合使用远程复制功能解决这一问题​如下图所示图中的镜像仓库分为两级主仓库和子仓库。在主仓库和子仓库之间配置了远程复制策略。当一个应用镜像被推送到主仓库后根据所配置的复制策略镜像可以立即被分发到其他子镜像仓库。集群中的Docker 主机就可以就近在其中任意一个子仓库中拉取所需的镜像减轻主仓库的压力push 推送模式在第二台虚拟机docker2上也部署harbor将配置文件中的hostname更换为slave.westos.org解析中在docker2后加上slave.westos.org也需要生成认证最后在浏览器访问回到201进行新建仓库将主仓库作为推送端目标设置为slave仓库取消验证远程证书成功创建创建复制推送规则复制策略支持推送和拉取两种方式。推送是指将当前 Harbor实例的Artifact制品复制到远程 Artifact 仓库服务下拉取是指将其他Artifact 仓库服务中的Artifact 复制到当前 Harbor 实例中​Harbor针对 Artifact的不同属性支持 4 种过滤器分别是名称过滤器、Tag 过滤器、标签过滤器、资源过滤器​这里我们选择远程推送所有项目下的所有镜像到 Docker Compose部署的 Harbor 中。触发模式为事件驱动一旦有镜像推送到 Harbor中就会立即推送到远程仓库中手动尝试复制成功上传镜像测试触发复制成功触发复制点击id可以查看详情在slave端可以看到复制过来的镜像
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →