Harbor安装使用实践

harbor在镜像仓库registry基础上添加了ui界面、用户权限、项目管理相关的功能,管理起镜像来比较直观

harbor安裝

github上直接搜索harbor,第一个goharbor/harbor就是了。进入release下载,我下载的是1.7的版本,不需要编译安装

安装指引:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md

主要就是要更改harbor.cfg中的hostname,这里直接使用云服务器的ip地址:16379

nginx默认端口是开在80,修改docker-compose.yml中80端口的映射为16379,与上面hostname的配置对应

执行install.sh

访问ip:16379。

Harbor安装使用实践

接下来往上push镜像

首先build镜像

Dockerfile文件

FROM java:8-jre
MAINTAINER xupan [email protected]
COPY cicd-test/target/euraka-0.0.1-SNAPSHOT.jar /euraka.jar
ENTRYPOINT [ "java" ,"-jar", "/euraka.jar" ]

 

执行脚本文件CLDS-test.sh

#!/bin/bash

rm -rf cicd-test

if [ $? -eq 0 ];then
    echo 'removed cicd-test successful'
fi
git clone https://github.com/CNXXPP/cicd-test.git

cd cicd-test &&  mvn  clean package -DskipTests

if [ $? != 0 ];then
    echo 'mvn package  failed!!!'
    exit 1
fi

docker rmi ip:16379/clds-dev/eureka:latest

cd .. && docker build -t ip:16379/clds-dev/eureka:latest .

docker push ip:16379/clds-dev/eureka:latest

docker stop clds-dev-eureka

docker rm clds-dev-eureka

docker run -d -p 8761:8777 --name clds-dev-eureka  -v /data/2thChinaLifeClient/log:/data/2thChinaLifeClient/log ip:16379/clds-dev/eureka:latest


脚本做的事就是从github上pull代码下来,打包,生成镜像,上传到镜像仓库,然后运行容器

实际使用中,应该是本机直接打镜像,上传到镜像仓库。服务器直接执行docker run命令运行容器就ok了

镜像的tag 格式:registery地址/项目名称/镜像名称:版本号

docker tag clds-dev/eureka:latest ip:16379/clds-dev/eureka:0.1


push镜像前需要将镜像仓库地址添加到docker配置insecure-registries。
在/etc/docker/daemon.json添加{ "insecure-registries":["ip:16379"] }
然后重启docker。否则出现以下错误

The push refers to repository [ip:16379/clds-dev/eureka]
Get https://ip:16379/v2/: http: server gave HTTP response to HTTPS client


原因是docker默认push镜像使用的是https协议

然后执行docker login  ip:16379

输入用户名密码登录

之后push

Login Succeeded
[[email protected] registy-test]# docker push ip:16379/library/eureka:0.1
The push refers to repository [ip:16379/library/eureka]
9df0f741afd6: Pushing [====>                                              ]  4.129MB/44.82MB
73ad47d4bc12: Pushed
c22c27816361: Pushing [==>                                                ]  6.474MB/142.3MB
04dba64afa87: Pushed
500ca2ff7d52: Pushed
782d5215f910: Pushed
0eb22bfb707d: Pushing [=======>                                           ]  6.916MB/44.31MB
a2ae92ffcd29: Pushing [=>                                                 ]  3.748MB/123MB


push完成后访问,可以看到我们刚刚push的镜像

Harbor安装使用实践
只要修改配置后打包,push然后到服务器上执行脚本重启就OK了。


注:win和mac版nsecure-registries是在程序设置的daemon中