持续集成系列------https私有docker仓库harbor搭建

持续集成系列——https私有docker仓库harbor搭建



目标

gitlab+jenkins+docker+harbor+k8s初步实现持续集成

harbor简介


Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker registry服务。

环境准备


  • 系统:Centos7.4
  • docker v17.03
  • ip:10.79.163.40
  • 域名:hub.domain.com

docker安装


#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加docker源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#安装docker
yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.1.ce-1.el7.centos \
docker-ce-selinux-17.03.1.ce-1.el7.centos
#切换国内hub
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ef017c13.m.daocloud.io
#启动
systemctl enable docker
systemctl start docker
#安装docker-compose
yum install -y docker-compose

Harbor下载


cd /opt
wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.2.tgz
tar xzvf harbor-offline-installer-v1.5.2.tgz
cd harbor

Harbor配置


vim harbor.cfg

修改如下内容

hostname = hub.domain.com
ui_url_protocol = https
customize_crt = off
ssl_cert = /opt/certs/hub.domain.com.cer
ssl_cert_key = /opt/certs/hub.domain.com.key

参数解释

customize_crt:使用自签名证书时设置为on
ssl_cert&ssl_cert_key:ssl证书存放的路径

ssl证书部署


自动申请免费ssl证书,这里以阿里云dns接口为例,其它认证方式请参考官方文档

acme脚本安装

cd /opt
#下载Let's Encrypt免费证书自动申请脚本
git clone --depth=1 https://github.com/Neilpang/acme.sh.git
cd ./acme.sh/
./acme.sh --install

阿里云dnskey获取
阿里云dnskey获取

#导入获取的key
export Ali_Key="yourkey"
export Ali_Secret="yoursecret"
#申请ssl证书
./acme.sh --issue --dns dns_ali -d hub.domain.com
#部署证书
mkdir /opt/certs
./acme.sh  --installcert  -d  hub.domain.com --key-file  /opt/certs/hub.domain.com.key --fullchain-file /opt/certs/hub.domain.com.cer

Harbor运行


cd /opt/harbor && ./install.sh
  1. 更改域名解析指向服务器ip
  2. 访问hub.domain.com
    这里写图片描述

常用操作


默认使用db认证方式,初始用户密码为admin/Harbor12345

  • 登陆仓库
docker login hub.domain.com
  • 推送镜像
#标记镜像
docker tag SOURCE_IMAGE[:TAG] hub.domain.com/library/IMAGE[:TAG]
#推送镜像到项目
docker push hub.domain.com/library/IMAGE[:TAG]
  • 从仓库拉取镜像
docker pull hub.domain.com/library/IMAGE[:TAG]
  • 配置修改后重启
cd /opt/harbor
vim harbor.cfg
docker-compose down
./prepare.sh
docker-compose up -d
  • 服务启停
cd /opt/harbor
docker-compose stop
dokcer-compose start

思考

harbor高可用集群

  • mysql集群
  • 镜像分布式存储
  • session保持(多个harbor实例,通过nginx进行负载均衡)

猜你喜欢

转载自blog.csdn.net/ct1150/article/details/81670164