您现在的位置是:首页 >技术交流 >【云原生】私有镜像的解决方案-Harbor管理实战网站首页技术交流
【云原生】私有镜像的解决方案-Harbor管理实战
前言
通过前面的镜像管理,我们知道docker的开发和运行都离不开镜像管理,如果要进行镜像管理就需要使用镜像仓库。
docker官方提供的镜像仓库是: docker hub, 很方面但从安全和效率的角度考虑,这样的公有镜像环境就无法在企业私有环境中使用了。所以我们今天来探讨下企业中私有镜像的管理-harbor管理实战
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
文章目录
一. Harbor的前世今生
1.1 什么是Harbor
Harbor是由VMware公开开发并开源的企业级的docker镜像管理项目,它包括镜像的权限管理,目录访问,日志审核,界面管理,自我注册,镜像复制和中文支持等功能。
1.2 Harbor的核心组件
- Proxy(代理):Harbor的组件,如注册表,UI和令牌服务,均位于逆向代理之后。代理将来自浏览器和Docker客户端的请求转发到各种后端服务。
- Registry(image仓库):负责存储Docker Images和处理Docker pull/push命令。由于Harbor需要强制对imagess进行访问控制,Registry会将客户端引导到令牌服务,以获取每个pull或push请求的有效令牌。
- Core services(核心服务):Harbor核心职能,主要提供以下服务:
- UI:用于帮助用户管理Registry Webhook上的Images的图形用户界面:Webhook是在注册表中配置的一种机制,以便Registry中的Images状态更改可以填充到Harbor的Webhook端点。Harbor使用webhook更新日志,启动复制和其他一些功能。
- 令牌服务:根据用户对项目的作用,负责为每个停靠点pull/push命令发出令牌。如果从Docker客户端发送的请求中没有令牌,则Registry将将请求重定向到令牌服务。数据库:数据库存储项目,用户,角色,复制策略和图像的元数据。
- Job services(工作服务):用于Images复制,本地映像可以复制(同步)到其他Harbor实例。
- Log collector(日志收集器):负责在单个地方收集其他模块的日志。
1.3 安装Harbor的环境
- centos7,需要有可用的网络
- 关闭防火墙和selinux
[root@mufenggrow ~]# systemctl stop firewalld
[root@mufenggrow ~]# setenforce 0
- 设置hosts的一对一映射关系
[root@mufenggrow ~]# cat >>/etc/hosts<<EOF
> 192.168.1.41 mufenggrow
> EOF
[root@mufenggrow ~]# tail -1 /etc/hosts
192.168.1.41 mufenggrow
[root@mufenggrow ~]#
二. 安装Habor前的准备工作
2.1 安装docker
如果你的docker还没有安装,请参考: CentOS7系统安装最新版本docker实战
如果你想离线安装docker,可以参考:CentOS7操作系统离线安装docker
确保你的docker是启动状态:
2.2 安装docker compose
- 从github中下载:
docker compose 是docker的编排工具,可以从github中下载:
[root@mufenggrow ~]# curl -SL https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 42.8M 100 42.8M 0 0 13.2M 0 0:00:03 0:00:03 --:--:-- 18.5M
如果你不确定下载哪个版本可以使用这个命令:
[root@mufenggrow ~]# curl -SL https://github.com/docker/compose/releases/download/v2.15.1/docker-compose-·uname-s`-`uname-m` -o /usr/local/bin/docker-compose
- 给docker compose加上可执行权限
[root@mufenggrow ~]# chmod +x /usr/local/bin/docker-compose
- 确定docker compose版本的信息:
[root@mufenggrow ~]# docker-compose version
Docker Compose version v2.15.1
三. 安装Harbor
3.1 从github中下载harbor文件
Harbor的压缩包下载地址:https://github.com/goharbor/harbor/releases
wget https://github.com/goharbor/harbor/releases/download/v2.5.6/harbor-offline-installer-v2.5.6.tgz
3.2 解压
使用tar命令解压即可:
[root@mufenggrow ~]# tar xf harbor-offline-installer-v2.5.6.tgz
[root@mufenggrow ~]# ls
anaconda-ks.cfg harbor-offline-installer-v2.5.6.tgz 公共 视频 文档 音乐
harbor initial-setup-ks.cfg 模板 图片 下载 桌面
[root@mufenggrow ~]#
3.3 修改配置
登录到darbor文件中进行修改
这里需要注意:先看一下文件,这里跟以前的版本已经不一样了,没有了harbor.cfg文件。
我们需要copy一个harbor.yml文件进行修改
[root@mufenggrow harbor]# cp harbor.yml.tmpl harbor.yml
修改yml
文件:
- 修改hostname: IP,必须是固定IP或者域名(不能是127.0.0.1)
- 修改访问端口8080,默认是80,一般我们80都有其他用处;
- https我们没有证书,一定注释掉。要不然后面会提示不成功;
- 修改密码,默认密码是Harbor12345,在这里如果不改,第一次登录也会提示改的。
密码尽可能不用默认密码
可选修改:
location: /data/harbor/logs 日志存放
data_volume: /data/harbor 数据存放
说明:修改前必须先创建好目录
3.4 执行install命令
[root@mufenggrow harbor]# ls
common.sh harbor.v2.5.6.tar.gz harbor.yml harbor.yml.tmpl install.sh LICENSE prepare
[root@mufenggrow harbor]# ./install.sh
若执行过程中出现:
[+] Running 0/1
⠿ Network harbor_harbor Error 0.2s
failed to create network harbor_harbor: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-5515db969ebc -j RETURN: iptables: No chain/target/match by that name.
(exit status 1))
解决方法: 重启下docker,再次运行 ./install.sh
如下图表示安装成功:
3.5 通过浏览器访问
访问: http://192.168.1.41:8080
下图中,我的IP因为是自动获取,换了个地方后,变成了192.168.1.56,你无须修改IP。
登录成功之后:
总结
以上就是Harbor实战的全部内容了,如果对你有用记得点赞收藏哦。
💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 本文由沐风晓月原创,首发于CSDN博客, 博客主页:mufeng.blog.csdn.net
💕 日拱一卒无尽有,功不唐捐终入海
💕 喜欢的话记得点赞收藏哦