文章目录
1. harbor介绍
1.1 harbor简介
- Harbor是由VMware公司开源的企业级的Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问的控制权限管理(RBAC)、AD/LDAP集成、日志审核、管理界面、自我注册、镜像复制和中文支持等。Harbor的目标是帮助用户迅速搭建一个企业级的Docker registry服务。它以Docker公司开源的registry为基础,额外提供了如下功能:
- 基于角色的访问控制(Role Based Access Control)
- 基于策略的镜像复制(Policy based image replication)
- 镜像的漏洞扫描(Vulnerability Scanning)
- AD/LDAP集成(LDAP/AD support)
- 镜像的删除和空间清理(Image deletion & garbage collection)
- 友好的管理UI(Graphical user portal)
- 审计日志(Audit logging)
- RESTful API
- 部署简单(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有以下缺点:
- 没有图形界面
- 没有项目管理
- 没有用户权限控制
- 看不到镜像操作记录
Harbor的优势:
- 图形管理界面。
- 按项目管理镜像。
- 独立的用户管理,不同用户可以操作不同镜像,细粒度的权限控制,包含create、push 、pull、delete。
- 镜像管理。
- 标签管理。
- 操作日志管理。
2. 安装配置harbor
实验环境:
harbor:192.168.43.11
官方下载:harbor
2.1 安装并开启docker
配置软件仓库并安装
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
-
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
-
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
-
vim /etc/yum.repos.d/CentOS-Base.repo
:%s/$releasever/7/g
-
yum install -y docker-ce
-
vim /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
sysctl --system
systemctl daemon-reload
重载配置
systemctl enable docker --now
设置docker开机自启
2.2 安装docker-compose
安装 Docker Compose 可以通过下面命令自动下载适应版本的 Compose,并为安装脚本添加执行权限
-
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
-
chmod +x /usr/local/bin/docker-compose
查看是否安装成功
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/
- 部署根证书
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 .
- 启用docker内容信任
export DOCKER_CONTENT_TRUST=1
export DOCKER_CONTENT_TRUST_SERVER=https://server1.pika.org:4443
- 关闭内容信任
export DOCKER_CONTENT_TRUST=0
在前端页面也取消内容信任勾选并保存
关闭并清理
docker-compose down
./prepare