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 使用命令行和 Dockerfile 来定义和构建容器。例如,用 docker run 命令来启动容器,使用 Dockerfile 来指定容器的环境和运行指令。

常用命令包括

docker run:运行一个新容器。
docker ps:列出运行中的容器。
docker stop:停止一个运行中的容器。
docker build:根据 Dockerfile 构建容器镜像。
#安装docker-ce 社区版
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
#启动docker服务
systemctl start docker
#查看docker服务状态
systemctl status docker
#查看docker版本
docker -v

安装Docker compose

  • 主要用于管理多个服务和容器,适用于微服务架构或复杂系统。
  • 允许用户通过一个文件定义多个服务、网络和存储卷,使得多容器应用的启动、停止和构建变得更加方便。
  • Docker Compose 使用 YAML 格式的 docker-compose.yml 文件来定义服务、网络和卷等配置。用户可以在这个文件中组合多个服务的设置。

常用命令包括

docker-compose up:启动并运行所有在 docker-compose.yml 中定义的服务。
docker-compose down:停止并删除所有服务。
docker-compose logs:查看服务的输出日志。
docker-compose exec:在运行的服务容器中执行命令。
#安装docker-compose
yum -y install docker-compose
#检查版本
docker compose version

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来设置开机自启动即可。然后重启服务器进行测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值