Skip to content

docker安装harbor

harbor是docker的一个镜像仓库,类似maven的nexus仓库

1.1 环境准备

需要准备以下环境:

  • docker

  • docker-compose

1.2 离线安装包下载

下载harbor的安装包:https://github.com/goharbor/harbor/releases

本次下载2.3.3版本:harbor-offline-installer-v2.3.3.tgz

使用自签的证书,自动生成证书。然后配置在配置文件当中

1.3 安装程序

  1. 上传安装包到文件并且解压

    tar -zxvf harbor-offline-installer-v2.3.3.tgz
    #进入解压目录
    cd harbor
  2. 修改harbor配置

    #复制配置文件
    cp harbor.yml.tmpl harbor.yml
    vi harbor.yml

配置文件修改地方

**注意:**如果是需要配置ssl证书,需要将证书复制到以下目录:

mkdir -p /data/cert
cp ssl.crt /data/cert/server.crt
cp ssl.key /data/cert/server.key
#服务器地址,可以是域名、ip,但是不能是127.0.0.1和localhost
hostname: 192.168.1.19
#http端口
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80
#https端口和证书配置,如果使用,配置证书路径
#https:
  # https port for harbor, default is 443
  #port: 443
  # The path of cert and key files for nginx
  #certificate: /data/cert/server.crt
  #private_key: /data/cert/server.key
#admin用户的密码,默认Harbor12345
harbor_admin_password: Harbor12345
#前端访问地址,使用这个地址hostname配置会失效,谨慎
#external_url: http://192.168.1.19
  1. 执行安装脚本

    #只安装harbor
    ./install.sh
    #安装harbor的同时安装chartmuseum
    ./install.sh --with-chartmuseum

出现错误解决方式:

  • 错误:Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /var/log/harbor/

    mkdir /var/log/harbor/

出现✔ ----Harbor has been installed and started successfully.----表示成功

  1. 访问http://ip:port登录

这里需要注意,如果前面安装https的时候失败,导致登录不进去,一直提示403,forbidden,重新配置并且安装,清空浏览器的缓存

启动需要通过docker-compose进行启动、关闭、重启等操作

1.4 配置镜像仓库

如果需要登录私有镜像仓库,需要在服务器配置镜像的仓库地址。

注意:这里是需要登录的服务器修改,不是harbor服务器修改

vim /etc/docker/daemon.json

改成下面的配置,增加私有仓库地址

{
 "insecure-registries": ["192.168.1.19"],
"registry-mirrors": ["https://5xok77d4.mirror.aliyuncs.com"]
}

重启服务

systemctl daemon-reload && systemctl restart docker.service

1.5 升级版本

以从2.3.3升级到2.8.0版本为例

官方升级文档介绍:https://goharbor.io/docs/2.8.0/administration/upgrade/

注意点:

goharbor/prepare:[tag] 镜像版本为需要升级的版本,即v2.8.0

因为是离线按照包按照,则加载

sh
docker image load -i harbor/harbor.v2.8.0.tar.gz

将旧的备份harbor.yml拷贝到新的harbor目录上,对新的配置文件升级,下面的命令后面的harbor.yml是新的harbor配置路径

sh
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.8.0 migrate -i harbor.yml

最后执行./install.sh 执行升级

1.6 重新配置harbor

如果在修改完harbor.yml时,有些配置不生效,如ip改变等等,需要重新加载一下harbor的配置

#在harbor.yml的路径下执行
# 重载配置
./prepare
# 重启
docker-compose down && docker-compose up -d

3.1 镜像推送脚本

#!/bin/bash
source /etc/profile
image_name=$1
docker login --username=thewolf 192.168.1.21 --password=12345678
docker pull ${image_name}
docker tag ${image_name} 192.168.1.21/common/${image_name}
docker push 192.168.1.21/common/${image_name}
docker rmi ${image_name} 192.168.1.21/common/${image_name}
./push.sh bitnami/kafka:3.2.0
./push.sh bitnami/zookeeper:3.8.0
./push.sh kibana:8.2.3
./push.sh logstash:8.2.3

./push.sh rabbitmq:3.10.5-management
./push.sh elasticsearch:8.2.3
./push.sh gitlab/gitlab-ce:15.1.0-ce.0
./push.sh jenkins/jenkins:jdk11
./push.sh sonatype/nexus3:3.40.0
./push.sh redis:7.0.2