1.harbor仓库
安装
下载安装包 https://github.com/goharbor/harbor/releases
# yum install -y docker-ce 安装docker
# systemctl start docker
# tar -zxf harbor-offline-installer-v1.10.1.tgz
# cd harbor
# vim harbor.yml
# ./install.sh 运行脚本
运行 ./install.sh出现报错
下载docker-compose(1.18.0+) http://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/
# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# ./install.sh 再次运行脚本
# netstat -antlp 查看端口
访问172.25.254.2:80
为Docker仓库添加证书加密功能
# docker-compose stop 停掉docker-compose
# vim harbor.yml
添加解析
# vim /etc/hosts
# mkdir -p /data/certs
# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org.crt 生成证书
# cd harbor/
# ./prepare 重新加载
# ./install.sh
# netstat -antlp 查看加密443端口是否开启
测试访问:172.25.254.2 选择高级接受风险进入
在远程主机(server1)上传镜像
此主机上需要安装docker-ce
# docker tag nginx:latest reg.westos.org/library/nginx:latest
# docker push reg.westos.org/library/nginx 上传
出现报错,提示没有证书
# mkdir -p /etc/docker/certs.d/reg.westos.org/ 生成目录
在server2主机中复制证书
# scp westos.org.crt root@server1:/etc/docker/certs.d/reg.westos.org/ca.crt 复制证书
继续上传
# docker push reg.westos.org/library/nginx
使用用户登录
# docker login reg.westos.org 使用用户
# docker push reg.westos.org/library/nginx 上传
在harbor仓库查看
远程下载(不需要人认证)
# docker logout reg.westos.org 注销用户
# docker pull reg.westos.org/library/nginx 下载
配置拉取私有仓库镜像(加速器)
在远程端
# vim /etc/docker/daemon.json 编辑此文件后需要重启docker
# systemctl restart docker
测试:
# docker pull nginx
创建项目
harbor创建用户
将用户贴加为开发人员
用开发人员用户上传镜像
# docker tag yueyue/game2048:latest reg.westos.org/westos/game2048 命名
# docker login reg.westos.org
# docker push reg.westos.org/westos/game2048 上传
查看
# docker pull reg.westos.org/westos/game2048 从私有仓库获取此镜像
# docker-compose stop
# ./install.sh --with-notary --with-clair --with-chartmuseum 加入信任 扫描
harbor仓库部署镜像扫描
为了系统运行安全加入扫描和信任
随意测试一个镜像,以busybox为例
# docker pull busybox 获取镜像
# docker tag busybox:latest reg.westos.org/library/busybox 打标签
# docker push reg.westos.org/library/busybox 上传
查看
harbor仓库部署镜像信任
# docker pull ikubernetes/myapp:v1 获取镜像
# docker tag ikubernetes/myapp:v1 reg.westos.org/westos/myapp:v1 打标签(签名和tag标签是绑定的)
# docker tag ikubernetes/myapp:v1 reg.westos.org/westos/myapp:v2
部署根证书:
# mkdir -p tls/reg.westos.org:4443/
# cd tls/reg.westos.org:4443/
# cp /etc/docker/certs.d/reg.westos.org/ca.crt . 复制证书
启用
docker
内容信任:
# export DOCKER_CONTENT_TRUST=1
# export DOCKER_CONTENT_TRUST_SERVER=https://reg.westos.org:4443 启用docker内容信任
测试:
打开漏洞扫描和信任
# docker push reg.westos.org/westos/myapp:v1
# docker push reg.westos.org/westos/myapp:v2 上传
查看
# docker tag busybox:latest reg.westos.org/westos/busybox
# docker push reg.westos.org/westos/busybox
回收签名
由于有签名的镜像删除不了,所以先要取消掉签名
# docker trust revoke reg.westos.org/westos/myapp:v1
然后删除