linux上Harbor部署及使用

Harbor是用于存储和分发Docker镜像的镜像仓库服务,Harbor在安全、标识、管理等方面比Registry都要略胜一筹

一、环境介绍:

  • centos7(vmware创建的虚拟机)
  • docker  18.06.0-ce
  • docker-compose 1.28.4
  • harbor2.5.5 离线安装包

192.168.1.15(harbor所在机器)

192.168.1.11(拉取harbor镜像的机器)

以下2、 3步都在192.168.1.15机器上操作

二、安装docker/docker-compose

在安装Harbor之前,docker和docker-compose需要提前安装好。具体的安装过程在此处忽略,详见 这个链接  yum安装升级docker和docker-compose_change the door-CSDN博客

三、安装Harbor

1、下载

Harbor部署https访问、域名访问。在这里我们采用离线安装包的方式来安装Harbor,可以避免在线安装时网络的影响。

在页面 Releases · goharbor/harbor · GitHub  ,选择最新版本  并下载:harbor-offline-installer-v2.2.0.tgz

将下载好的包上传的我们的linux机器后解压:

tar -zxvf harbor-offline-installer-v2.2.0.tgz

解压完成后进入目录harbor,可以看到有如下内容:

生成yml文件:

cp harbor.yml.tmpl harbor.yml

【 重要】配置harbor.yml下的postgresql参数

volumes需要改为: /data/database:/home/postgresql/data:z,不然可能导致postgresql启动失败!

如下示例:

  postgresql:
    image: goharbor/harbor-db:v2.5.5
    container_name: harbor-db
    restart: always
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - DAC_OVERRIDE
      - SETGID
      - SETUID
    volumes:
      - /data/database:/home/postgresql/data:z

2、需要配置https的相关配置,并配置hostname。

更新服务器时间,不然生成的证书会有问题。

ntpdate time1.aliyun.com
hwclock -w

harbor_admin_password:管理员初始密码,在这里我们就使用默认的,不用修改。

如下图:

3、创建ca证书私钥

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

4、创建服务的私钥

openssl genrsa -out lch-harbor.com.key 4096
openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=lch-harbor.com" \
    -key lch-harbor.com.key \
    -out lch-harbor.com.csr

5、配置dns相关参数

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=lch-harbor.com
DNS.2=lch-harbor
DNS.3=hostname
EOF

6、配置harbor域名证书

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

7、把证书配置到harbor和docker

cp lch-harbor.com.crt /data/cert/
cp lch-harbor.com.key /data/cert/

校验证书是否正常: 

openssl x509 -inform PEM -in lch-harbor.com.crt -out lch-harbor.com.cert
cp lch-harbor.com.cert /etc/docker/certs.d/lch-harbor.com/
cp lch-harbor.com.key /etc/docker/certs.d/lch-harbor.com/
cp ca.crt /etc/docker/certs.d/lch-harbor.com/

8、重启docker服务

systemctl restart docker

9、安装

./prepare

在install.sh文件所在目录执行命令./install.sh即可安装Harbor,顺带安装chartmuseum以便支持chart上传:

./install.sh --with-notary --with-trivy --with-chartmuseum

如果安装失败,则可去掉--with-notary参数:

ERROR:root:Error: the protocol must be https when Harbor is deployed with Notary

上条指令执行完成后,通过docker ps 命令可以看到有9个容器启动

停掉harbor

docker-compose down -v

再启动

docker-compose up -d

4、验证和使用

Harbor的web服务使用了宿主机的80端口,主机的IP地址即可访问Harbor的web管理页面,

在这里我们的账号是admin,密码是默认的Harbor12345

有可能登录提示:核心组件异常

请查看/var/log/harbor下的postgresql等组件的日志

排查过程可以参考下面两个链接:

https://blog.csdn.net/Xin_101/article/details/127702186
https://www.jianshu.com/p/a25be68e7eb4

登录成功后会看到有一个默认的项目 library 但是下面一个镜像都没有,接下来我们推送镜像到harbor上。

以下操作在 192.168.1.11机器上执行

5、推送镜像

5.1配置

要从192.168.1.11机器上连接Harbor服务器,需要配置11这台机器上的docker镜像地址:
编辑192.168.1.11的/etc/docker/daemon.json文件,增加以下内容

{
  "insecure-registries":["192.168.1.15"]
}

192.168.1.15是Harbor服务器的IP地址

5.2重启docker:

systemctl daemon-reload

systemctl restart docker

5.3推送本地镜像

执行docker images发现1.11这台机器本地有一个镜像busybox:

docker tag 8c811b4aec35 192.168.1.15/library/docker.io/busybox:1.28.4

8c811b4aec35 是镜像ID

登录harbor:

docker login 192.168.1.15 -u admin -p Harbor12345

推送镜像:

docker push 192.168.1.15/library/docker.io/busybox:1.28.4

上传完毕后,登录Harbor网页,可以看到新上传的镜像:

至此,我们的harbor部署成功,

如果在192.168.1.15、192.168.1.11以外的机器上拉取我们刚刚上传的镜像,则同样设置机器上的docker镜像地址,可以参考上面的5.1和5.2两个步骤,然后拉取:

docker pull 192.168.1.15/library/docker.io/busybox:1.28.4

Harbor docs | Harbor Installation and Configuration

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值