Harbor部署(HTTP与HTTPS)
一、简介
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
二、Harbor特征
- 基于角色的访问控制 :用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
- 镜像复制 : 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
- 图形化用户界面 : 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
- AD/LDAP 支持 : Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
- 审计管理 : 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
- 国际化 : 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
- RESTful API : RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
- 部署简单 : 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。
三、离线安装Harbor
下载离线安装包,500多M,有点儿大,在xshell下载半天都不动,复制链接到浏览器一会er就下载完了
wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz
安装epel源
docker-compose在epel仓库中
[root@n1 ~]# yum install epel-release -y
需要用到Docker Compose
[root@n1 harbor]# yum install docker-compose -y
解压
[root@n1 ~]# tar xf harbor-offline-installer-v1.7.4.tgz -C /usr/local/
修改配置文件
[root@n1 harbor]# pwd
/usr/local/harbor
[root@n1 harbor]# vim harbor.cfg
hostname = n1.realxw.com #设置主机名
harbor_admin_password = Harbor12345 #设置harbor管理员登录密码
db_password = root123 #设置数据库登录密码
开始安装
[root@n1 harbor]# ./prepare
[root@n1 harbor]# ./install.sh
✔ ----Harbor has been installed and started successfully.----
查看相关端口是否开启
安装成功!
四、测试
默认用户登录
用户名:admin,密码:Harbor
创建普通用户及项目
浏览器输入IP地址
创建普通用户
用realxw用户登录
创建一个devel项目,项目下边可以有多个仓库
向镜像仓库中推送镜像,需要安装提示打标签
配置
想要推镜像,需要设置非安全仓库(这里使用http协议,没有使用https)
[root@n1 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com","https://registry.docker-cn.com"],
"insecure-registries": ["n1.realxw.com"] #添加
}
添加解析记录
[root@n1 ~]# vim /etc/hosts
192.168.231.60 n1.realxw.com
修改i配置文件后重启docker
[root@n1 ~]# systemctl restart docker
再次登录时会出现用户登录用户名或密码错误,是因为harbor的相关容器关闭,需要用docker-compose启动harbor
[root@n1 harbor]# pwd
/usr/local/harbor#切换到harbor目录,使docker-compose能找到docker-compose.yml
[root@n1 harbor]# docker-compose start #停止服务,使用stop
登录Harbor
推送镜像
拉取busybox镜像
[root@n1 ~]# docker pull busybox:latest
为busybox镜像打标签
[root@n1 ~]# docker tag busybox:latest n1.realxw.com/devel/busybox:v1
[root@n1 ~]# docker push n1.realxw.com/devel/busybox:v1
The push refers to repository [n1.realxw.com/devel/busybox]
adab5d09ba79: Pushed
v1: digest: sha256:4415a904b1aca178c2450fd54928ab362825e863c0ad5452fd020e92f7a6a47e size: 527
推送成功
五、配置HTTPS
这里是后续补充,不是在上边主机部署
生成自签证书
[root@zhangshibin ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3650
创建数据库文件
[root@zhangshibin ~]# touch /etc/pki/CA/index.txt
序列号文件并给明第一个证书的序列号码
[root@zhangshibin ~]# echo 01 > /etc/pki/CA/serial
生成秘钥
[root@zhangshibin test]# (umask 077; openssl genrsa -out docker.key 1024)
生成证书请求文件
[root@zhangshibin test]# openssl req -new -key docker.key -out docker.csr
CA签署证书
[root@zhangshibin test]# openssl ca -in docker.csr -out docker.crt -days 365
[root@zhangshibin ~]# mkdir -p /etc/docker/certs.d/192.168.231.30
[root@zhangshibin test]# cp docker.key /etc/docker/certs.d/192.168.231.30/
[root@zhangshibin test]# cp docker.crt /etc/docker/certs.d/192.168.231.30/
修改配置文件
[root@zhangshibin ~]# vim harbor/harbor.cfg
ui_url_protocol = https
ssl_cert = /etc/docker/certs.d/192.168.231.30/docker.crt
ssl_cert_key = /etc/docker/certs.d/192.168.231.30/docker.key
更新配置文件
[root@zhangshibin harbor]# ./prepare
[root@zhangshibin harbor]# docker-compose restart
编辑/etc/docker/daemon.json
删除"insecure-registries": ["192.168.231.30"]
重启docker
[root@zhangshibin ~]# systemctl restart docker.servic
浏览器访问:
更多推荐
所有评论(0)