docker-harbor:简易配置/镜像签名/内容信任

文章目录

  • 1.简介
    • 1.1 harbor
    • 1.2 下载
  • 2.配置harbor
    • 2.1 在harbor文件夹内
    • 2.2 安装harbor
    • 2.3 浏览器内配置
    • 2.4 在server5上部署
    • 2.4 新建私有项目
    • 2.5 测试
  • 3.完整功能Harbor
    • 3.1 准备
    • 3.2 安装完整功能Harbor
  • 4 镜像签名
    • 4.1 根部署证书
    • 4.2 启用docker内容信任
    • 4.3 上传镜像
    • 4.4 取消签名机制
    • 4.5 清理

1.简介

1.1 harbor

harbor是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC),LDAP,审计,安全漏洞扫描,镜像验真,自我注册等企业必须的功能,同时针对中国用户的特点,设计了镜像复制和中文支持等功能。是在官方仓库docker hub上的二次开发。
开发语言:go
开源协议:apache-2.0

1.2 下载

以下均在server4上,并删除上节做好的认证
删除认证registrydocker rm -f registry
退出registry:docker lohout reg.westos.org
删除认证文件:

1.docker-compose

  • 用来管控多个容器

将下载的二进制可执行文件移到/usr/local/bin:
scp docker-compose-Linux-x86_64-1.27.0 server4:/usr/local/bin/docker-compose
给予可执行权限:chmod +x /usr/local/bin/docker-compose

2.harbor
对于提前下好的离线版压缩文件:
解压缩:tar zxf harbor-offline-installer-v1.10.1.tgz
文件较大,大概647M:du -sh

2.配置harbor

2.1 在harbor文件夹内

编辑主配置文件,修改主机名:hostname: reg.westos.org

 certificate: /certs/westos.org.crt
 private_key: /certs/westos.org.key

 harbor_admin_password: lee

根下建立:mkdir /data
复制:cp -r certs/ /

2.2 安装harbor

执行安装程序:./install.sh
控制该容器:docker-compose ps

  • 该命令执行时必须与docker-compose.yml在同一文件内

docker-harbor:简易配置/镜像签名/内容信任_第1张图片

2.3 浏览器内配置

浏览器输入server4地址:172.25.119.4
用户名:amidn;密码:自己设置的密码
docker-harbor:简易配置/镜像签名/内容信任_第2张图片
docker-harbor:简易配置/镜像签名/内容信任_第3张图片
首先退出登陆:docker logout reg.westos.org
再重新登陆:docker login reg.westos.org
规范命名:docker tag busybox:latest reg.westos.org/library/busybox:latest
上传:docker push reg.westos.org/library/busybox:latest

2.4 在server5上部署

1.再server5上设置本地pull优先私有仓库

cd /etc/docker/
vim daemon.json

{
  "registry-mirrors": ["https://reg.westos.org"]
}
systemctl reload docker.service

2.测试
下载busybox秒下:
docker-harbor:简易配置/镜像签名/内容信任_第4张图片
可以在日志里看到记录:
docker-harbor:简易配置/镜像签名/内容信任_第5张图片

2.4 新建私有项目

docker-harbor:简易配置/镜像签名/内容信任_第6张图片
新建用户lee:
docker-harbor:简易配置/镜像签名/内容信任_第7张图片
在westos项目中加入该成员,设置为维护人员:
docker-harbor:简易配置/镜像签名/内容信任_第8张图片
新建用户demo,加入至westos,设置为访客:
docker-harbor:简易配置/镜像签名/内容信任_第9张图片

2.5 测试

登出:docker logout reg.westos.org
用lee(维护人员)登陆:docker login reg.westos.org
tag:docker tag rhel7:latest reg.westos.org/westos/rhel7:latest
上传:docker push reg.westos.org/westos/rhel7:latest
登出:docker logout reg.westos.org

用demo(访客)登陆:docker login reg.westos.org
tag:docker tag webserver:latest reg.westos.org/westos/webserver:latest
上传提示失败:docker push reg.westos.org/westos/webserver:latest
docker-harbor:简易配置/镜像签名/内容信任_第10张图片
日志可看记录:
docker-harbor:简易配置/镜像签名/内容信任_第11张图片

3.完整功能Harbor

3.1 准备

关闭:docker-compose down
docker-harbor:简易配置/镜像签名/内容信任_第12张图片
重新部署harbor:./prepare
执行后会删除配置,项目数据并不会删除
docker-harbor:简易配置/镜像签名/内容信任_第13张图片

3.2 安装完整功能Harbor

./install.sh --with-notary --with-clair --with-chartmuseum

  • Note: Please set hostname and other necessary attributes in harbor.yml first. DO NOT use localhost or 127.0.0.1 for hostname, because Harbor needs to be accessed by external clients.
    Please set --with-notary if needs enable Notary in Harbor, and set ui_url_protocol/ssl_cert/ssl_cert_key in harbor.yml bacause notary must run under https.
    Please set --with-clair if needs enable Clair in Harbor
    Please set --with-chartmuseum if needs enable Chartmuseum in Harbor

分别对应:内容信任,自动扫描(漏洞),Helm Charts

对上传的镜像进行扫描:
docker-harbor:简易配置/镜像签名/内容信任_第14张图片
扫描完成:
docker-harbor:简易配置/镜像签名/内容信任_第15张图片
注:由于linux虚拟机快照机制,扫描会大量消耗虚拟机资源

4 镜像签名

镜像签名:https://goharbor.io/docs/1.10/working-with-projects/working-with-images/pulling-pushing-images/

4.1 根部署证书

/etc/docker/certs.d/reg.westos.org/ca.crt
~/.docker/tls/reg.westos.org:4443/ca/crt
docker-harbor:简易配置/镜像签名/内容信任_第16张图片

4.2 启用docker内容信任

export DOCKER_CONTENT_TRUST=1
export DOCKER_CONTENT_TRUST_SERVER=https://reg.westos.org:4443

docker-harbor:简易配置/镜像签名/内容信任_第17张图片
勾选后,未经签名认证的镜像再server端将不能被拉取

4.3 上传镜像

docker tag yakexi007/game2048:latest reg.westos.org/westos/game2048:latest
docker push reg.westos.org/library/nginx:latest
首次上传时需要设置root密码及仓库密码:
docker-harbor:简易配置/镜像签名/内容信任_第18张图片
上传镜像自动签名:
docker-harbor:简易配置/镜像签名/内容信任_第19张图片
远端server也拉取成功:

docker-harbor:简易配置/镜像签名/内容信任_第20张图片
此时上传另一个镜像时只需要输入仓库密码:
docker-harbor:简易配置/镜像签名/内容信任_第21张图片
注:同一镜像不同版本号再上传时只需要输入仓库密码

4.4 取消签名机制

export DOCKER_CONTENT_TRUST=0
此时还需要点掉内容信任,否则无法上传部署
在这里插入图片描述

4.5 清理

考虑到以后继续用,且防止占用空间不断增大,down掉harbor
docker-compose down

docker-harbor:简易配置/镜像签名/内容信任_第22张图片

并清理配置:
./prepare
docker-harbor:简易配置/镜像签名/内容信任_第23张图片

注:docker-compose命令必须在harbor目录下,因为要读取harbor.yml,否则会出现以下提示
docker-harbor:简易配置/镜像签名/内容信任_第24张图片

  • 以后为防止虚拟机不断增大,再次安装时取消选择with-clair扫描功能和--with-notary内容信任
  • 即安装执行./install.sh --with-chartmuseum

docker-harbor:简易配置/镜像签名/内容信任_第25张图片

你可能感兴趣的:(docker-harbor:简易配置/镜像签名/内容信任)