玩转docker必不可少的镜像私服Harbor 2.0安装手册

一、目标

在centos7.6上安装docker私有仓库软件harbor2.0版本(2020年5月19日最新版本)。

二、分析

harbor是靠docker-compose编排的,而docker-compose又靠docker运行,所以我们要先装docker,再装docker-compose。其中docker最好装docker-ce版。

三、安装docker-ce和docker-compose

1.关闭防火墙、修改主机名

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
hostnamectl set-hostname harbor.hiibm.com

2.安装docker-ce

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl enable docker
docker -v

3.安装docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version

三、安装harbor 2.0

1.下载harbor离线包

可以去https://github.com/goharbor/harbor/releases找到合适的版本下载,或者直接使用这个地址https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-offline-installer-v2.0.0.tgz 用迅雷把它下载下来再传到centos上。

或者直接在centos上使用命令下,不过这过程比较慢,这玩意478M左右。

wget -P /usr/local/src/ https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-offline-installer-v2.0.0.tgz

2.解压harbor压缩包

tar -zxvf /usr/local/src/harbor-offline-installer-v2.0.0.tgz -C /usr/local
cd /usr/local/harbor/

 3.给harbor写配置文件

扫描二维码关注公众号,回复: 12616219 查看本文章

注释:
● hostname写上你要访问的harbor的地址当主机名。
● certificate和private_key是支持HTTPS访问的证书的路径,文件名最好和主机名对应,便于记忆。
● harbor_admin_password是默认的harbor登录的密码
● database-password我猜是默认的harbor数据库密码,默认的是root123,建议改掉。
● data_volume 是数据默认存放目录,即harbor的docker持久化目录默认放在了/data下。

cat > /usr/local/harbor/harbor.yml <<EOF
hostname: harbor.hiibm.com

http:
  port: 80
https:
  port: 443
  certificate: /usr/local/harbor/certs/harbor.hiibm.com.crt
  private_key: /usr/local/harbor/certs/harbor.hiibm.com.key

harbor_admin_password: Harbor12345

database:
  password: harbor123db
  max_idle_conns: 50
  max_open_conns: 100

data_volume: /data

clair:
  updaters_interval: 12
trivy:
  ignore_unfixed: false
  skip_update: false
  insecure: false
jobservice:
  max_job_workers: 10

notification:
  webhook_job_max_retry: 10
chart:
  absolute_url: disabled

log:
  level: info
  local:
    rotate_count: 50
    rotate_size: 200M
    location: /var/log/harbor
_version: 2.0.0

proxy:
  http_proxy:
  https_proxy:
  no_proxy:
  components:
    - core
    - jobservice
    - clair
    - trivy
EOF

4.给harbor创建SSL证书

● 安装openssl证书工具

yum install -y openssl

● 创建证书存放文件夹

mkdir /usr/local/harbor/certs
cd /usr/local/harbor/certs

● 生成无加密的根证书私钥(注意一定要进到证书目录)

openssl genrsa -out ca.key 4096

● 使用刚才生成的私钥制作自签名证书(将这里的harbor.hiibm.com替换成你的域名即可)

 openssl req -x509 -new -nodes -sha512 -days 3650 -subj "/C=CN/ST=Beijing/L=Beijing/O=harbor.hiibm.com/OU=harbor.hiibm.com/CN=harbor.hiibm.com" -key ca.key -out ca.crt

● 生成服务器端自己域名的key(将这里的harbor.hiibm.com替换成你的域名即可)

openssl genrsa -out harbor.hiibm.com.key 4096

● 生成服务器端自己域名的CSR签名请求(将这里的harbor.hiibm.com替换成你的域名即可)

openssl req -sha512 -new -subj "/C=CN/ST=Beijing/L=Beijing/O=harbor.hiibm.com/OU=harbor.hiibm.com/CN=harbor.hiibm.com" -key harbor.hiibm.com.key -out harbor.hiibm.com.csr

●  生成一个 openssl 命令需要的外部配置文件 xexternalfile.ext(将这里的harbor.hiibm.com替换成你的域名即可)

cat > xexternalfile.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor.hiibm.com
EOF

● 通过外部配置文件 xexternalfile.ext和 csr 生成 crt(将这里的harbor.hiibm.com替换成你的域名即可)

openssl x509 -req -sha512 -days 3650 -extfile xexternalfile.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in harbor.hiibm.com.csr -out harbor.hiibm.com.crt

● 将服务端的 crt 转换成客户端用的 cert(将这里的harbor.hiibm.com替换成你的域名即可)

openssl x509 -inform PEM -in harbor.hiibm.com.crt -out harbor.hiibm.com.cert

5.预编译harbor (这个过程可能会需要十来分钟,因为要到外部获取各种必须的镜像)

cd /usr/local/harbor
./prepare

6.开始安装harbor(啰嗦:必须进入到/usr/local/harbor目录下)

cd /usr/local/harbor
./install.sh

直到看到[✔ ----Harbor has been installed and started successfully.----]才说明harbor安装成功了。

7.(可略过)查看docker进程,看harbor是否安装成功

docker ps

正常的话,你会看到一堆包含harbor的docker ps进程

-至此,harbor2.0就安装完成了。

四、登录harbor的web页面

1.修改windows的hosts文件,做harbor域名解析。(如果你的域名是公网的,那就不要没多大必要做这一步了)

2.浏览器打开harbor:https://harbor.hiibm.com ,点“高级”,“继续前往harbor.hiibm.com(不安全)”

3. harbor的默认登录账号是admin,默认密码是Harbor12345

4.鸡冻人心的时刻到来了

至此,harbor就彻底安装完成了。

六、harbor的启动和停止

cd /usr/local/harbor

#停止harbor
docker-compose -f docker-compose.yml down

#启动harbor
docker-compose -f docker-compose.yml up -d

或者写两个简单的脚本更方便

cat > ~/stopHarbor.sh <<EOF
#!/usr/bin/env bash
docker-compose -f /usr/local/harbor/docker-compose.yml down

if [ $? -eq 0 ];then
	echo -e "\e[1;32mINFO: harbor is close!!!\e[0m"
else
	echo -e "\e[1;31mERROR: harbor has failed to close...\e[0m"
fi
EOF


cat > ~/startHarbor.sh <<EOF 
#!/usr/bin/env bash
docker-compose -f /usr/local/harbor/docker-compose.yml up -d

if [ $? -eq 0 ];then
	echo -e "\e[1;32mINFO: harbor is running!!!\e[0m"
else
	echo -e "\e[1;31mERROR: harbor start failed...\e[0m"
fi
EOF

------------本帖部分参考jason9211的帖子。特此鸣谢--------

-------------送上鸡汤:我命由我不由天,是魔是仙我自己说了算--------------------------

猜你喜欢

转载自blog.csdn.net/xoofly/article/details/106213499