harbor简介:
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由vmware开源,在Docker Registry的基础至上添加了一些企业必需的功能特性,例如安全认证、镜像扫描和镜像管理、远程镜像复制等,扩展了开源的Docker Distribution的功能,作为一个企业级的私有Registry服务器,Harbor提供了更好的性能和安全,提升了用户使用Registry分发镜像镜像的效率,Harbor支持安装在多个Registry节点以实现镜像资源夸主机复制、从而实现镜像服务的高可用和镜像数据的安全,另外将镜像全部保存在私有网络的Registry中, 也可以确保代码数据和密码配置等信息仅在公司内部网络中传输,从而保证核心数据的安全性。
harbor官方网址:
https://goharbor.io/
harbor官方github地址:
https://github.com/vmware/harbor
vmware官方开源服务列表地址:
https://vmware.github.io/harbor/cn
harbor的优势:
基于角色的访问控制:用户与Docker镜像仓库通过“项目”进行项目管理,可以对不同的账户设置不同的权限,以实现权限的精细管控。
镜像复制:镜像可以在多个Registry实例中复制(同步),可以实现高性能、高可用的镜像服务。
图形化用户界面:用户可以通过浏览器来浏览,管理当前Docker镜像仓库,管理项目和镜像等。
AD/LDAP 支:Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
审计管理:所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
国际化:已拥有英文、中文、德文、日文和俄文等多语言支持版本。
RESTful API:提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
部署简单:提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
harbor组件简介:
Core Service:基于nginx实现的harbor反向代理组件,用于接受客户端请求,代理会转发harbor web和docker client的各种请求到后端服务上。
Admin Service:harbor系统管理接口,可以修改系统配置以及获取系统信息。
Job Service:harbor里面主要是为了镜像仓库之前同步使用的。
SQL Database:存储项目的元数据、用户、规则、复制策略等信息。
Image Registry:存储docker images的服务,提供镜像读写请求服务。
Redis:存储缓存信息。
vulnerability scanning: 镜像漏洞扫描服务(基于红帽的clair实现,https://github.com/quay/clair?utm_source=thenewstack&utm_medium=website&utm_content=inline- mention&utm_campaign=platform)。
trusted content:可信服务,用于验证镜像的数字签名信息,保证镜像的一致性(依赖于ssl实现)。
harbor 部署-http:
http镜像仓库:
1、安装docker:
root@docker-harbor1:~# cd /usr/local/src/
root@docker-harbor1:/usr/local/src# tar xvf docker-20.10.19- binary-install.tar.gz
root@docker-harbor1:/usr/local/src# bash docker-install.sh
2.安装harbor:
root@docker-harbor1:~# mkdir /apps
root@docker-harbor1:~# cd /apps/
root@docker-harbor1:/apps# tar xvf harbor-offline-installer- v2.6.1.tgz
root@docker-harbor1:/apps# cd harbor/
root@docker-harbor1:/apps# cp harbor.yml.tmpl harbor.yml
root@docker-harbor1:/apps/harbor# vim harbor.yml
hostname: harbor.magedu.net
http:
• port: 80
harbor_admin_password: 12345678
验证web界面:
harbor 部署-http:
docker使用http harbor:
docker主机登录
1.配置主机名解析
root@docker-server1:~# vim /etc/hosts
192.168.106.210 harbor.laimiya.com
2.docker 服务器配置仓库信任:
root@docker-server1:~# vim /etc/docker/daemon.json
"insecure-registries": ["harbor.laimiya.com","harbor.magedu.net","harbor.myserver.com","172.31.7.105"],
root@docker-server1:~# systemctl restart docker
root@docker-server1:~# docker login harbor.magedu.net
Username: admin
Password: xxxxxxxx #输入在自己的密码
WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
3.上传镜像:
root@docker-server1:/usr/local/src/dockerfile/nginx-web1# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
harbor.laimiya.com/laimiya/nginx-web1 20221127_120707 751fd7db2baf 10 minutes ago 470MB
harbor.laimiya.com/laimiya/nginx-base v1.22.1 eacd1ae95ee0 20 minutes ago 466MB
system-base v1 23901dc6c638 30 minutes ago 441MB
harbor.laimiya.com/laimiya/ubuntu-base 22.04 23901dc6c638 30 minutes ago 441MB
nginx latest 605c77e624dd 11 months ago 141MB
ubuntu 22.04 9d28ccdc1fc7 11 months ago 76.3MB
lorel/docker-stress-ng latest 1ae56ccafe55 6 years ago 8.1MB
root@docker-server1:~# docker tag harbor.laimiya.com/laimiya/nginx-web1:20221127_120707 harbor.laimiya.com/laimiya/nginx-base:20221127_120707
root@docker-server1:~# docker push harbor.laimiya.com/laimiya/nginx-base:20221127_120707
4.验证镜像下载:
配置域名解析及仓库信任
root@docker-server2:~# docker pull harbor.laimiya.com/laimiya/nginx-base:20221127_120707
root@docker-server2:/usr/local/src# docker run -it -p 80:80 harbor.laimiya.com/laimiya/nginx-web1:20221127_120707
浏览器:
http://192.168.106.132
harbor 部署-https:(后期k8s再配置)
见 部署https的harbor服务器