Linux 离线部署 https 访问的 harbor

Linux 离线部署 https 访问的 harbor

部署环境 centerOS 7.6
docker版本 18.06.0-ce
docker-compose版本 1.28.4
harbor版本 v2.7.0 (离线版)

安装 docker ce

docker 下载地址:https://download.docker.com/linux/static/stable/x86_64/
这里选用的是 docker-18.06.0-ce.tgz
在这里插入图片描述
解压

tar -xvf docker-18.06.0-ce.tgz

将解压出来的docker文件内容移动到 /usr/bin/ 目录下

cp docker/* /usr/bin/

将docker注册为service

vim /etc/systemd/system/docker.service

将下列配置加到docker.service中并保存

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

启动

chmod +x /etc/systemd/system/docker.service             #添加文件权限并启动docker
systemctl daemon-reload                                 #重载unit配置文件
systemctl start docker                                  #启动Docker
systemctl enable docker.service                         #设置开机自启

验证

systemctl status docker                                 #查看Docker状态
docker -v                                               #查看Docker版本

在这里插入图片描述
参考文档:https://www.cnblogs.com/wbqcheng/p/11972540.html

使用二进制安装 docker-compose

下载地址:https://github.com/docker/compose/releases
选择要安装的版本
在这里插入图片描述

在点击版本名称,选择对应环境的二进制包
在这里插入图片描述

点击下载到本地,上传到服务器上,然后修改名称为 docker-compose 移动到 /usr/local/bin 目录下

# docker-compose-linux-x86_64 下载到了/root 目录下了
mv /root/docker-compose-linux-x86_64 /usr/local/bin/docker-compose

添加执行权限

chmod +x /usr/local/bin/docker-compose

创建软链

# 将docker-compose配置为全局可执行,即任何路径都可运行该命令
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功

docker-compose version

在这里插入图片描述
参考文档:https://blog.csdn.net/suyuaidan/article/details/133266139

安装openssl

主要用于生成https访问harbor的证书和秘钥,如只需要使用http访问harbor的施主可以不安装
有些服务器自带 openssl ,也可以不用安装

yum install -y openssl

证书秘钥配置

此部分用于设置 https 安全访问所需要的证书秘钥
harbor 仓库基础访问方式有两种,一种 http 一种 https
仅使用 http 访问 harbor 的施主可以跳过,本篇只介绍 https 访问 harbor

创建文件夹用于存放生成的证书秘钥文件

mkdir -p /harbor/certs/ 

在 /harbor/certs/ 目录下执行生成密钥命令

cd /harbor/certs/ 
openssl genrsa -out ca.key 4096

在这里插入图片描述
证书秘钥与IP绑定
生成证书秘钥并绑定ip以及配置地区和有效期
ip填写你自己的harbor安装位置服务器的ip,如有ip对应的域名也可填域名,本篇未设域名仅用ip配置

openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=10.0.0.16" \
 -key ca.key \
 -out ca.crt

在这里插入图片描述

部署Harbor

安装包上传到服务器
下载安装包地址:https://github.com/goharbor/harbor/releases
在这里插入图片描述

在选取的版本中,找到要下载的离线包,下载到本地(注意:2.5.5版本会出现重启后数据库报错问题,需要删除database数据,2.7.0 以上没有这个问题了)

在这里插入图片描述

下载到 /harbor 路径下,并解压

cd /harbor
tar -zxvf harbor-offline-installer-v2.7.0.tgz

在这里插入图片描述

将 harbor 移动到 /opt 目录下

mv harbor /opt

harbor相关文件都在该文件夹中,共六个文件
在这里插入图片描述

harbor.yml 配置
配置harbor.yml文件中的参数,主要是端口号、IP地址、证书秘钥、数据存储位置的配置

文件夹中有harbor.yml.tmpl模板文件,将其复制为harbor.yml,后续我们使用的就是这个文件

# 备份
cp /opt/harbor/harbor.yml.tmpl /opt/harbor/harbor.yml

修改IP地址、http和https对应的端口号、证书位置路径、数据目录

# 修改参数
vim /opt/harbor/harbor.yml

修改如下:
hostname 域名修改为自己要安装harbor的服务器的ip
http 端口修改为8800
https 端口修改为8443
证书位置修改
certificate: 证书路径修改为/harbor/certs/ca.crt
private_key: 秘钥路径修改为/harbor/certs/ca.key
harbor_admin_password: 默认Harbor密码,不修改,就用默认的Harbor12345
data_value: 修改为/data/harbor,这里默认为/data,建议修改一下,我这里没改,是因为我忘了,当然后续也可以改了之后重启harbor
注:如果只用http访问的施主可将https对应部分注释掉,因为配置https后,即使你以http请求访问也会跳转到https
在这里插入图片描述
通过prepare文件来执行命令生成Harbor所需配置文件
进入/opt/harbor目录

cd /opt/harbor

执行prepare命令生成配置文件

./prepare

在这里插入图片描述
同样在/opt/harbor目录下执行安装命令

./install.sh

执行时会出现这种报错,在第5步的时候执行 docker-compose up -d 失败,我们手动执行下就可以了
在这里插入图片描述
在这里插入图片描述

如果没有报错,正常是出现最后一行成功安装的输出即表示安装成功,如下
在这里插入图片描述
我们用docker命令查看我们运行的harbor相关容器

docker ps

在这里插入图片描述
或者用 docker-compose -f /opt/harbor/docker-compose.yml ps 查看服务状态
在这里插入图片描述
前面配置安装完成后,可通过 https://xxx:8443 访问我们的Harbor镜像仓库

输入账号密码即可登录
默认账号为admin
默认密码为Harbor12345
在这里插入图片描述
新建一个项目
在这里插入图片描述
创建项目后,本地docker上传文件需要授权,如果是集群的话每个节点都要配置上

# 创建daemon.json 文件
vim /etc/docker/daemon.json

# 编辑如下内容
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries": ["https://172.30.0.224:8443"]
}

编辑完成后,需要重启 docker

# 使配置生效
systemctl daemon-reload
# 重启docker
systemctl restart docker 

注意,重启 docker 后harbor 进程都被停止了,需要重启 harbor ,但是重启后发现 harbor-db 一直 restarting ,经过度娘指点,原来是 /data/database 文件已有内容,需要清空 ( /data/database 文件夹一旦被清空,数据就没了,所以清空前要备份数据)
在这里插入图片描述

# 清空 /data/database 文件夹
rm -rf /data/database/* 

# 执行 docker-compose down 
docker-compose down

# 再在 /opt/harbor 文件夹下执行 docker-compose up -d
cd /opt/harbor
docker-compose up -d

在这里插入图片描述
服务器上登录 harbor

# 交互式登录
docker login 172.30.0.224:8443

在这里插入图片描述
下载及推送镜像到harbor 都能成功
在这里插入图片描述
在这里插入图片描述

参考文档:https://blog.csdn.net/mo_sss/article/details/135909921

  • 14
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值