CI/CD工具集:搭建私有Docker镜像仓库Harbor

01 前言   

   Harbor是一个用于存储和分发Docker镜像Registry私服,我们可以使用它来管理企业内部的Docker镜像。它提供UI,可以方便用户管理。本文转自公众号:天目星    ,请大家多多关注。链接:传送门


一、使用的软件与架构图

linux:CentOS 7.5.1804

harbor:harbor-offline-installer-v1.5.0.tgz

docker:docker-ce-18.09.1-3

使用的节点

主机名 IP地址
node3.test.com 192.168.159.22

二、安装

1、安装docker-ce

参考docker官网,如有旧版本请先卸载

https://docs.docker.com/install/linux/docker-ce/centos/

$ sudo yum remove docker \            docker-client \            docker-client-latest \            docker-common \            docker-latest \            docker-latest-logrotate \            docker-logrotate \            docker-engine

安装yum的支持套件

$ sudo yum install -y yum-utils \   device-mapper-persistent-data \   lvm2

添加docker官方仓库

$ sudo yum-config-manager \    --add-repo \    https://download.docker.com/linux/centos/docker-ce.repo

使用yum安装docker

#  查询有哪些docker版本$ yum list docker-ce --showduplicates | sort -r# 选择k8s对应的docker版本安装$ sudo yum install docker-ce-<VERSION_STRING> # 我们使用的是k8s 1.14 ,建议安装docker 18.09$ sudo yum install docker-ce-18.09.1

2、安装harbor

参考项目网站:https://github.com/goharbor/harbor

安装harbor需要docker-compose的支持

$ yum install docker-compose

官网提供的发布包下载地址:

https://github.com/goharbor/harbor/releases

harbor提供离线安装与在线安装包下载,本例使用离线安装包安装

解压到相关目录下$ tar xvf harbor-offline-installer-v1.5.0.tgz -C /opt$ cd /opt/harbor

修改配置文件

$ cd /opt/harbor$ vim harbor.cfghostname = node3.test.com    #设置访问Harbor Admin UI的地址ui_url_protocol = http  #设置访问Harbor Admin UI的协议max_job_workers = 50  #复制服务的最大工作数customize_crt = on  #生效证书功能,配合以下两条命令。使用外部证书请设置为offssl_cert = /data/cert/server.crtssl_cert_key = /data/cert/server.keysecretkey_path = /data  #密匙存放路径log_rotate_count = 50  #保留的日志循环数量log_rotate_size = 200M  #日志大小#请根据实际情况配置邮箱email_server = node3.test.com  email_server_port = 25email_username = [email protected]email_password = 123456email_from = admin <[email protected]>email_ssl = falseemail_insecure = falseharbor_admin_password = Harbor12345  #设置管理员密码auth_mode = db_auth  #使用本地db认证模式,需要ldap认证请设置为:ldap_authself_registration = on  #是否启动用户自助注册,如配置为ldap_auth,则此项不生效。project_creation_restriction = everyone  #设置用户创建项目的权限

安装

默认没有安装Notary或Clair,如需安装请使用--with-notary --with-clair$ cd /opt/harbor$ ./install.sh...省略...✔ ----Harbor has been installed and started successfully.----Now you should be able to visit the admin portal at http://node3.test.com. For more details, please visit https://github.com/vmware/harbor .

使用docker-compose来管理harbor的生命周期

$ cd /opt/harbor$ docker-compose stop  #停止harbor服务$ docker-compose start  #启动harbor服务$ docker-compose down  #删除harbor服务

三、使用harbor

使用流量器登录http://node3.test.com/harbor/sign-in

使用账户admin 登录,密匙是之前设置:Harbor12345

新建项目用于存储本地镜像

如创建公共仓库,请点击勾选"公开",公共仓库无需使用"docker login"登录即可使用。

下图是新建好的仓库"local_registry"

四、在客户端推送镜像到harbor

推送命令范例docker tag SOURCE_IMAGE[:TAG] node3.test.com/local_registry/IMAGE[:TAG]docker push node3.test.com/local_registry/IMAGE[:TAG]

假设本地有一个nginx的镜像需要上传至harbor

查看本地镜像$ docker imagesREPOSITORY    TAG      IMAGE ID        CREATED         SIZEnginx         1.17     719cd2e3ed04    5 days ago      109MB根据推送范例打标签$ docker tag nginx:1.17 node3.test.com/local_registry/nginx:1.17推送至harbor$ docker push node3.test.com/local_registry/nginx:1.17The push refers to repository [node3.test.com/local_registry/nginx]d7acf794921f: Pushed d9569ca04881: Pushed cf5b3c6798f7: Pushed 1.17: digest: sha256:079aa93463d256ecf24ade92c9a7fe size: 948

在harbor新建的项目中可以查看到上传的镜像

从harbor中拉取镜像

$ docker pull node3.test.com/local_registry/nginx:1.171.17: Pulling from local_registry/nginxDigest: sha256:079aa93463d256ecf24ade92c9a7feStatus: Downloaded newer image for node3.test.com/local_registry/nginx:1.17

尾声

    通过本例,大家可以初步搭建一个本地的镜像仓库。本地的仓库可以快速推送与拉取镜像,配合CI/CD工具持续集成与部署。

请关注公众号:天目星

猜你喜欢

转载自blog.csdn.net/Gordon_luo/article/details/92414444