Harbor 部署

官方文档:https://goharbor.io/docs/2.0.0/install-config/

前言

轻量级虚拟化的容器技术具有举足轻重的推动作用。其实很早之前,容器技术已经有所应用,而 Docker 的出现和兴起彻底带火了容器。其关键因素是 Docker 提供了使用容器的完整工具链,使得容器的上手和使用变得非常简单。工具链中的一个关键,就是定义了新的软件打包格式-容器镜像。镜像包含了软件运行所需要的包含基础 OS 在内的所有依赖,推送至运行时可直接启动。从镜像构建环境到运行环境,镜像的快速分发成为硬需求。同时,大量构建以及依赖的镜像的出现,也给镜像的维护管理带来挑战。镜像仓库的出现成为必然。

在这里插入图片描述

自己在本地搭建一套镜像仓库:Harbor。上传和下载镜像。

1、确保目标主机满足Harbor安装前提条件

Docker文档:https://docs.docker.com/engine/install/centos/

安装Docker

#安装docker-ce 社区版
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
#启动docker服务
systemctl start docker
#查看docker版本
docker -v

安装Docker compose

#安装docker-compose
yum -y install docker-compose
#我的是centos8使用上面命令报错,采用的下方的
#pip3 install docker-compose

问题收集

2、下载harbor上传主机

官网地址
harborhttps://github.com/goharbor/harbor/releases

可以下载其离线版本

在这里插入图片描述

#创建解压目录harbor
mkdir harbor
#进入解压目录harbor
cd harbor
#解压压缩包到当前目录下的harbor目录中
tar -zxvf harbor-offline-installer-v2.5.1.tgz

3、配置HTTPS证书

#生成CA证书私钥
openssl genrsa -out ca.key 4096
#生成CA证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=域名地址" \
 -key ca.key \
 -out ca.crt
#将服务器证书和密匙复制到Harbor主机上的证书文件夹中
cp ca.crt /data/cert
cp ca.key /data/cert
#重启docker
systemctl restart docker
#运行prepare脚本启用HTTPS服务
./prepare

4、配置Harbor YML文件

#进入解压完的harbor文件夹种
cd harbor
#将harbor.yml.tmpl重名名为harbor.yml
mv harbor.yml.tmpl harbor.yml

配置文件harbor.yml
在这里插入图片描述

6、运行安装程序脚本

#到harbor解压目录下执行
./install.sh 

7、测试命令登陆仓库

docker login 仓库地址

出现报错

Error response from daemon: Get "https://仓库地址/v2/": x509: certificate relies on legacy Common Name field, use SANs instead

解决

安装docker后不一定有/etc/docker/daemon.json文件,手动创建一个进行编辑

{"insecure-registries": [
    "地址"
  ]}

保存退出后重启docker和执行./install.sh

8、设置harbor服务自启动

当部署Harbor的服务器在重启之后,可能会出现Harbor无法跟随系统自启动

解决方案

现假设Harbor的安装目录位置为/usr/local/harbor,在Harbor安装完成之后,在此目录下会生成docker-compose.yml配置文件,可以使用docker-compose操作此文件来控制Harbor的启停。

接下来编写自启Harbor的systemd服务,命名为harbor.service(放置于/etc/systemd/system目录下):

[Unit]
Description=harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor

[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml down

[Install]
WantedBy=multi-user.target

其中 ExecStart 字段中的/usr/local/bin/docker-compose 为自己本机的docker-compose所在目录,可使用 which docker-compose 命令查找,{{ harbor_install_path }}为harbor的安装目录,我安装在home下,该字段如下所示:

/home/yang/harbor/harbor/docker-compose.yml 

最后使用chmod -R 777 harbor.service 设置访问权限,使用systemctl enable harbor.service来设置开机自启动即可。然后重启服务器进行测试。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值