海南建设银行分行网站,恒华大厦做网站公司,中国建设银行开放式网站,江苏做网站价格1、概述
Harbor是由VMware公司开源的企业级的Docker Registry管理项目#xff0c;它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
Harbor 的所有组件都在 Dcoker 中部署#xff0c;所以 Harbor 可使用 Docker Compose 快速部署。 …1、概述
Harbor是由VMware公司开源的企业级的Docker Registry管理项目它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
Harbor 的所有组件都在 Dcoker 中部署所以 Harbor 可使用 Docker Compose 快速部署。
由于 Harbor 是基于 Docker Registry V2 版本所以 docker 版本必须 1.10.0 docker-compose 1.6.0
Harbor的目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registry为基础额外提供了如下功能:
基于角色的访问控制(Role Based Access Control)基于策略的镜像复制(Policy based image replication)镜像的漏洞扫描(Vulnerability Scanning)AD/LDAP集成(LDAP/AD support)镜像的删除和空间清理(Image deletion garbage collection)友好的管理UI(Graphical user portal)审计日志(Audit logging)RESTful API部署简单(Easy deployment)
1.1 架构图
Harbor的每个组件都是以Docker容器的形式构建的可以使用Docker Compose来进行部署。如果环境中使用了kubernetesHarbor也提供了kubernetes的配置文件。
Harbor大概需要以下几个容器组成ui(Harbor的核心服务)、log(运行着rsyslog的容器进行日志收集)、mysql(由官方mysql镜像构成的数据库容器)、Nginx(使用Nginx做反向代理)、registry(官方的Docker registry)、adminserver(Harbor的配置数据管理器)、jobservice(Harbor的任务管理服务)、redis(用于存储session)。
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器整体架构还是很清晰的。架构图如下:
2、安装docker
Harbor要依赖Docker所以要先安装见Ubuntu20.04安装Docker
3、下载Harbor
访问harbor release page下载Harbor软件tgz压缩包。
4、解压
tar -zxvf harbor-offline-installer-v2.9.4.tgz解压后出现一个 hardor 的文件夹进去之后查看 此时还没有 harbor.yml 和 docker-compose.yml复制一份harbor.yml.tmpl 然后进行修改
cp harbor.yml.tmpl harbor.yml主要改下面地方填上hostnameport注释掉https相关
5、安装
在当前 harbor 目录下执行./install.sh 等待安装成功。会出现上面提到的 docker-compose.yml文件里面包含了harbor依赖的镜像和对应容器创建的信息。
6、安装docker-compose
# 安装
curl -L https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose# 授权
chmod x /usr/local/bin/docker-compose7、执行docker-compose
在harbor的目录下执行以下命令
# 启动
docker-compose up -d# 停止
docker-compose down启动后使用docker ps -a查看harbor相关容器启动情况总计9个
8、访问
根据上面的配置的IP访问 http://172.28.168.223:5180 默认用户 和登录密码 可以从 harbor.yml 中找到官网有个地方也有说明
admin / Harbor12345登录成功
9、使用
9.1 创建用户和项目
首先有一个 public 的 library 项目在里面创建对应的用户即可pull 和 push镜像也可以创建其它项目
9.2 docker配置 harbor
结合docker实现镜像上传和下载在/etc/docker/daemon.json添加以下内容 IP为harbor的IP地址和端口端口如果是80可省略
# 仓库IP地址和端口或者是域名要加上http或https
insecure-registries:[http://172.28.168.223:5180],registry-mirrors:[http://172.28.168.223:5180]registry-mirrors配置的是阿里云镜像加速该文的问题不需要配置该项insecure-registries允许 Docker 客户端连接到没有使用 HTTPS 或使用了自签名证书的 Docker 镜像仓库 registry-mirrors必须配置你的harbor仓库否则可能造成docker login是成功的但是push镜像时出现相同的问题
重启dockerservice docker restart 重启harbor
# 停止
docker-compose down# 启动
docker-compose up -d9.3 登录仓库
docker login -u admin -p Harbor12345 http://172.28.168.223:51809.2 上传镜像到harbor
在上传镜像前需要为镜像打上标签命令如下
docker tag image_name harbor_host/project_name/image_name:tag以redis镜像为例
docker tag redis:5.0.10 172.28.168.223:5180/library/redis:5.0.10上传镜像命令如下
docker push harbor_host/project_name/image_name:tag上传redis镜像到harbor
docker push 172.28.168.223:5180/library/redis:5.0.10登录harbor控制台查看在library项目下有redis镜像
9.3 harbor拉取镜像
先删除上面本地的redis镜像172.28.168.223:5180/library/redis:5.0.10
docker rmi 172.28.168.223:5180/library/redis:5.0.10拉取镜像的命令
# image_name是要拉取的镜像名称project_name是Harbor中的项目名称tag是镜像的版本号
docker pull harbor_host/project_name/image_name:tag拉取redis镜像
docker pull 172.28.168.223:5180/library/redis:5.0.10