Harbor仓库的搭建

1. harbor介绍

1.1 harbor简介

  • Harbor是由VMware公司开源的企业级的Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问的控制权限管理(RBAC)、AD/LDAP集成、日志审核、管理界面、自我注册、镜像复制和中文支持等。Harbor的目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registry为基础,额外提供了如下功能:
  1. 基于角色的访问控制(Role Based Access Control)
  2. 基于策略的镜像复制(Policy based image replication)
  3. 镜像的漏洞扫描(Vulnerability Scanning)
  4. AD/LDAP集成(LDAP/AD support)
  5. 镜像的删除和空间清理(Image deletion & garbage collection)
  6. 友好的管理UI(Graphical user portal)
  7. 审计日志(Audit logging)
  8. RESTful API
  9. 部署简单(Easy deployment)

1.2 harbor仓库结构

  • Harbor大概需要以下几个容器组成:ui(Harbor的核心服务)、log(运行着rsyslog的容器,进行日志收集)、mysql(由官方mysql镜像构成的数据库容器)、Nginx(使用Nginx做反向代理)、registry(官方的Docker registry)、adminserver(Harbor的配置数据管理器)、jobservice(Harbor的任务管理服务)、redis(用于存储session)。

1.3 harbor vs registry

  • harbor是一个docker私有镜像仓库,虽然docker官方提供了公共的镜像仓库(Docker Hub),但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目。

docker官方提供了一个私有镜像仓库 docker Registry,安装部署容易,安装一个Registry容器就可以使用了。但是Registry有以下缺点:

  1. 没有图形界面
  2. 没有项目管理
  3. 没有用户权限控制
  4. 看不到镜像操作记录

Harbor的优势:

  1. 图形管理界面。
  2. 按项目管理镜像。
  3. 独立的用户管理,不同用户可以操作不同镜像,细粒度的权限控制,包含create、push 、pull、delete。
  4. 镜像管理。
  5. 标签管理。
  6. 操作日志管理。

2. 安装配置harbor

实验环境:
harbor:192.168.43.11
官方下载:harbor

2.1 安装并开启docker

配置软件仓库并安装

  1. vim /etc/yum.repos.d/docker.repo
[docker]
name=docker-ce
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/
gpgcheck=0

  1. curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

  2. sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

  3. vim /etc/yum.repos.d/CentOS-Base.repo

:%s/$releasever/7/g
  1. yum install -y docker-ce

  2. vim /etc/sysctl.d/docker.conf

net.bridge.bridge-nf-call-ip6tables = 1 
net.bridge.bridge-nf-call-iptables = 1 
  1. sysctl --system
    systemctl daemon-reload 重载配置
    systemctl enable docker --now设置docker开机自启

2.2 安装docker-compose

安装 Docker Compose 可以通过下面命令自动下载适应版本的 Compose,并为安装脚本添加执行权限

  1. curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

  2. chmod +x /usr/local/bin/docker-compose

查看是否安装成功

  1. docker-compose -v

2.3 制作证书并做地址解析

生成https加密证书

mkdir -p /data/certs
cd /data/certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout pika.org.key -x509 -days 365 -out pika.org.crt

在这里插入图片描述

地址解析

vim /etc/hosts
192.168.43.11 server1.pika.org

在这里插入图片描述

2.4 安装配置harbor

1.解压
tar zxf harbor-offline-installer-v2.1.4.tgz解压包
cd harbor/

2.复制模板
cp harbor.yml.tmpl harbor.yml

3.编辑
#vim harbor.yml
hostname: server1.pika.org
certificate: /data/certs/pika.org.crt#证书路径
private_key: /certs/pika.org.key#私钥路径
harbor_admin_password: westos#harbor管理员密码
max_open_conns: 100

4.安装harbor
./install.sh  

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3. 配置本地上传文件

1.创建目录
mkdir -p /etc/docker/certs.d/server1.pika.org

2.拷贝证书到docker主机
cp /data/certs/pika.org.crt /etc/docker/certs.d/server1.pika.org/ca.crt



3.给镜像打上标签
docker tag nginx:latest server1.pika.org/library/nginx/nginx:latest

4.登录
docker login server1.pika.org


5.上传镜像到harbor
docker push server1.pika.org/library/nginx/nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 配置远程上传文件

拷贝证书到docker远程主机:
在这里插入图片描述
地址解析:
在这里插入图片描述
登录上传镜像:
在这里插入图片描述
在这里插入图片描述
也可以设置仓库私有:

vim /etc/docker/daemon.json

{
    
      
   "registry-mirrors": ["https://reg.red.org"]  
} 

systemctl restart docker
docker rmi server1.pika.org/library/nginx:latest删除之前的镜像
docker pull nginx直接从私有仓库下载

在这里插入图片描述

5. 设置harbor私有仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 增加harbor仓库镜像扫描、签名功能

 cd harbor/
 docker-compose stop
 ./install.sh --help
 ./install.sh --with-notary --with-clair --with-chartmuseum

在这里插入图片描述

6.1 镜像检测

手动扫描:
在这里插入图片描述

在这里插入图片描述
自动扫描:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2 镜像信任

参考官方文档:https://docs.docker.com/engine/security/trust/content_trust/

  1. 部署根证书
mkdir -p .docker/tls/server1.pika.org:4443
cd .docker/tls/server1.pika.org:4443
cp /etc/docker/certs.d/server1.pika.org/ca.crt .

在这里插入图片描述

  1. 启用docker内容信任
export DOCKER_CONTENT_TRUST=1
export DOCKER_CONTENT_TRUST_SERVER=https://server1.pika.org:4443

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 关闭内容信任
 export DOCKER_CONTENT_TRUST=0

在前端页面也取消内容信任勾选并保存
关闭并清理

docker-compose down
./prepare 

猜你喜欢

转载自blog.csdn.net/weixin_46074899/article/details/115062159