- 前言
- 卸载
- 删除harbor相关的目录及文件
- 删除docker中有关harbor的镜像及容器
- 下载
- 解压安装
- 解压tar文件
- 配置Harbor
- 执行安装脚本
- 安装时出现的问题及解决方法
- 启动Harbor
- 使用
- 页面
- 创建项目及账号
在使用jenkins作为自动化部署(CI/CD)应用时,我们在此期间将maven打包好的项目jar包制作成Docker镜像,然后在推送到一个Docker镜像私有仓库(Harbor)。其他部署服务器从Harbor中拉取镜像,然后启动容器即可。这篇文章我们就简单介绍Harbor的安装,卸载和基本使用教程
卸载为什么我要记录卸载呢?因为我在写这篇安装教程时,我将系统中harber相关文件全删除了(rm -rf $(find / -name harbor)),然后再执行安装harbor时就出现一些莫名其妙的错,可能会出现下图:
$ rm -rf `find / -name harbor`删除docker中有关harbor的镜像及容器
如果你执行过harbor目录下的./install.sh 那么docker中就会存在一些进行和容器,所以我们需要先将容器停止,然后再执行删除
我这里是因为docker里的容器和镜像都只是harbor的,所以我这里删除的就是docker里的全部数据,您可以根据你实际情况进行逐行删除harbor的镜像和容器。具体命令如下:
# 将运行的容器全部停止 $ docker stop `docker ps - q` # 将容器全部删除 $ docker rm `docker ps -qa` # 将镜像全部删除 $ docker rmi `docker images -q`
删除成功,再执行安装命令
$ cd harbor $ ./install.sh下载
在官网可以看见。安装Harbor需要安装Docker、Docker Compose 安装、Openssl。且在下载安装时需要注意版本
GitHub上下载 harbor-offline-installer-vxxx.tgz,因为浏览器装有GitHub加速插件,所以下载会快很多。将其下载到本地后,在推送到服务器上。
tar -zxvf harbor-offline-installer-v2.3.3.tgz配置Harbor
进入解压目录,配置harbor
cd harbor/ cp harbor.yml.tmpl harbor.yml #编辑harbor的配置文件 vim harbor.yml
修改以下内容然后保存退出
hostname: 192.168.31.169 #修改harbor的启动ip,这里需要依据系统ip设置 http: port: 85 #harbor的端口,有两个端口,http协议(80)和https协议(443) # https related config #https: # https注释掉 # https port for harbor, default is 443 # port: 443 # The path of cert and key files for nginx #certificate: /your/certificate/path #private_key: /your/private/key/path harbor_admin_password: harbor12345 #修改harbor的admin用户的密码 data_volume: /harbor/data #修改harbor存储位置执行安装脚本
执行脚本
$ ./install.sh安装时出现的问题及解决方法
注意解决完问题继续执行./install.sh。
如果出现下图的错误,只需要重启Docker即可(systemctl restart docker)
如果出现下图的错误,只需要根据提示创建文件即可(mkdir /var/log/harbor)
如果出现下面的错误,那么就请先按照上面的卸载教程,先将harbor进行卸载然后再执行安装。
如果机器重启后,需要再次手动重启harbor
# 需要先进入harbor安装目录(解压目录) $ docker-compose up -d # 停止harbor $ docker-compose stop使用 页面
浏览器输入在harbor.yml 页面配置的 hostname 及 http.port 的值访问,我根据上面的配置访问http:192.168.31.169:85 就能看见登陆页面,使用用户名(admin)和密码(Harbor12345)登录
- 创建一个用户
- 创建一个项目,将该用户添加到项目成员中,并设置维护人员角色
- 登录该用户,查看新创建的项目
注意:如果别的机器使用命令行连接harbor(docker login http://129.168.31.196:85),那么那台机器必须额外设置下
$ systemctl status docker .... # 编辑上面打印service文件 $ cp /usr/lib/systemd/system/docker.service /usr/lib/systemd/system/docker.service.bak $ vim /usr/lib/systemd/system/docker.service # 将`--insecure-registry=192.168.31.196:85` 添加到后面 [Service] .... ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=192.168.31.196:85 .... # 重启docker $ systemctl daemon-reload $ systemctl restart docker # 登录,输入用户名和密码即可 $ docker login http://192.168.31.196:85 # 当登录成功后,会在用户目录(我这里是root) /root/.docker/config.json 里配置认证信息 #退出登录 $ docker logout



