千家信息网

Docker私有仓库部署和管理

发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,Harbor介绍Harbor是vmware公司开源的企业级docker registry项目Harbor的优势基于角色控制基于镜像的复制策略支持LDAP/AD图像删除和垃圾收集图形UI审计RESTfu
千家信息网最后更新 2025年01月29日Docker私有仓库部署和管理

Harbor介绍

Harbor是vmware公司开源的企业级docker registry项目

Harbor的优势

基于角色控制基于镜像的复制策略支持LDAP/AD图像删除和垃圾收集图形UI审计RESTful API

Harbor架构组成

Proxy:
通过一个前置的反向代理统一接受浏览器,docker客户端的请求,并将请求转发给后端不同的服务
Registry:
负责储存Docker镜像,并处理docker push/pull命令
Core services:
Harbor的核心功能,包括UI,webhook,token服务
Database:
为core services提供数据库服务
Log collector:
负责收集其他组件的log,供日后进行分析

Docker私有仓库架构拓扑

1、Proxy:通过一个前置的反向代理统一接受浏览器,Docker客户端的请求,并将请求转发给后端不同的服务。2、Registry:负责存储 Docker 镜像,并处理 docker push/pull 命令。3、Core services:Harbor的核心功能,包括 UI、webhook、token 服务。4、Database:为 core services 提供数据库服务。5、Log collector:负责收集其他组件的 log,供日后进行分析。

 用户请求通过Proxy反向代理访问Core services,UI提供web界面,token令牌,你第一次登录之后服务器会给你一串序列号,下次直接登录就行,你需要下载的镜像信息,属性,都存放在后面的database,再通过webhook回调去registry私有仓库调取镜像。这一系列的操作都存放在日志中。

实验环境

docker私库服务器 192.168.13.128 (docker 、Harbor 、docker-compose)docker客户端 192.168.13.129 (docker)

1,配置harbor私库服务器

[root@harbor ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/Password for root@//192.168.100.3/LNMP-C7:  [root@harbor ~]# cd /mnt/[root@harbor mnt]# cd docker/[root@harbor docker]# cp docker-compose /usr/local/bin/  ##安装compose编排工具[root@harbor docker]# tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/  ##解压[root@harbor docker]# cd /usr/local/harbor/[root@harbor harbor]# vim harbor.cfg  ##修改harbor配置文件hostname = 192.168.13.128  ##修改主机为本地地址harbor_admin_password = Harbor12345 ##harbor密码[root@harbor harbor]# sh /usr/local/harbor/install.sh  ##启动harbor[root@harbor harbor]# docker images  ##镜像信息[root@harbor harbor]# docker ps -a   ##查看容器信息49b88d8877ae   vmware/registry:2.6.2-photon   "/entrypoint.sh serv…"   5000/tcp                 registry[root@harbor harbor]# docker-compose  ps   ##容器简易信息

2,登录到harbor私库web界面


3,在harbor服务器上登录到私库中

[root@harbor harbor]# docker login -uadmin -p Harbor12345 http://127.0.0.1 ##登录私库[root@harbor harbor]# docker pull cirros ##从公有下载镜像[root@harbor harbor]# docker tag cirros 127.0.0.1/myproject-kgc/cirros:v1 ##修改标签[root@harbor harbor]# docker push 127.0.0.1/myproject-kgc/cirros:v1  ##上传到私库##在web上访问私库信息

4,用client客户端登录私库

[root@client ~]# vim /usr/lib/systemd/system/docker.service  ##修改docker配置文件ExecStart=/usr/bin/dockerd -H fd:// --nsecure-registry 192.168.13.128 --cont    ainerd=/run/containerd/containerd.sock##添加私有库服务器地址[root@client ~]# systemctl daemon-reload   ##重载守护进程[root@client ~]# systemctl restart docker     ##重启容器[root@client ~]# docker login -uadmin -pHarbor12345 http://192.168.13.128   ##登录私库[root@client ~]# docker pull cirros  ##从公有仓库下载[root@client ~]# docker pull 192.168.13.128/myproject-kgc/cirros:v1 ##从私库中下载镜像[root@client ~]# docker tag cirros:latest 192.168.13.128/myproject-kgc/cirros:v2  ##修改标签[root@client ~]# docker push 192.168.13.128/myproject-kgc/cirros:v2  ##上传到私库服务器##用web界面查看

5,管理私库,在harbor服务器上配置

[root@harbor harbor]# docker-compose down -v  ##用compose管理关闭所有容器[root@harbor harbor]# vim harbor.cfg  ##根据需要修改配置文件[root@harbor harbor]# ./prepare  ##重新加载生效[root@harbor harbor]# docker-compose up -d  ##开启所有容器

##用client登录[root@client ~]# docker logout http://192.168.13.128  ##先退出管理员登录Removing login credentials for 192.168.13.128[root@client ~]# docker login http://192.168.13.128  ##用新建用户登录Username: test01Password: 

6,如要从新部署,需要移除服务器全部数据同时保留镜像数据/数据库

[root@harbor harbor]# docker-compose down -v  ##先关闭所有容器日志存在宿主机/var/log/harbor上数据,镜像删除:rm -rf /data/database/rm -rf /data/registry/

谢谢阅读!

0