docker仓库管理
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,由VMware开源,其通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有Registry服务器,Harbor 提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网络中管控,另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等
vmware 官方开源服务: https://vmware.github.io/
harbor 官方github 地址: https://github.com/vmware/harbor
harbor 官方网址: https://goharbor.io/
harbor 官方文档: https://goharbor.io/docs/
github文档:
Harbor功能官方介绍
-
-
镜像复制: 镜像可在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景
-
图形化用户界面: 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间
-
AD/LDAP 支: Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理
-
审计管理: 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理
-
国际化: 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来
-
RESTful API: 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易
-
-
-
UI(Core Service): 对应启动组件harbor-ui。底层数据存储使用mysql数据库,主要提供了 四个子功能:
-
UI: 一个web管理页面ui
-
API: Harbor暴露的API服务
-
Auth: 用户认证服务,decode后的token中的用户信息在这里进行认证;auth后端可以接db、ldap、uaa三种认证实现
-
Token服务(上图中未体现): 负责根据用户在每个project中的role来为每一个docker push/pull命令发布一个token,如果从docker client发送给registry的请求没有带token,registry会重定向请求到token服务创建token
-
-
Registry: 对应启动组件registry。负责存储镜像文件,和处理镜像的pull/push命令。Harbor对镜像进行强制的访问控制,Registry会将客户端的每个pull、push请求转发到token服务来获取有效的token
-
Admin Service: 对应启动组件harbor-adminserver。是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候需要加载adminserver的配置
-
Job Sevice: 对应启动组件harbor-jobservice。负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log
-
Log Collector: 对应启动组件harbor-log。日志汇总组件,通过docker的log-driver把日志汇总到一起
-
下载地址: https://github.com/vmware/harbor/releases
安装文档: https://github.com/goharbor/harbor/blob/master/docs/install-config/_index.md
cp docker-compose-Linux-x86_64_1.29.1 /usr/bin/docker-compose chmod +x /usr/bin/docker-compose docker-compose version
tar xf harbor-offline-installer-v1.2.2.tgz
cd harbor/
vim harbor.cfg
./prepare
./install.sh
docker ps -a
需要修改 service 文件
vim /usr/lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.100.140
systemctl daemon-reload systemctl restart docker ./install.sh docker login 192.168.100.140
docker pull nginx
#下载镜像
打上标签
docker tag 605c77e624dd 192.168.100.140/test1/nginx:latest
上传
docker push 192.168.100.140/test1/nginx:latest