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 安装程序
上传安装包到文件并且解压
tar -zxvf harbor-offline-installer-v2.3.3.tgz #进入解压目录 cd harbor修改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执行安装脚本
#只安装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.----表示成功
- 访问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.service1.5 升级版本
以从2.3.3升级到2.8.0版本为例
官方升级文档介绍:https://goharbor.io/docs/2.8.0/administration/upgrade/
注意点:
goharbor/prepare:[tag] 镜像版本为需要升级的版本,即v2.8.0
因为是离线按照包按照,则加载
docker image load -i harbor/harbor.v2.8.0.tar.gz将旧的备份harbor.yml拷贝到新的harbor目录上,对新的配置文件升级,下面的命令后面的harbor.yml是新的harbor配置路径
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 -d3.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