1 什么是harbor

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。
镜像的存储harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。
harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。
harbor以docker-compose的规范形式组织各个组件,并通过docker-compose工具进行启停。

Harbor是VMware公司开源了企业级Registry项目, 其的目标是帮助用户迅速搭建一个企业级的Docker registry服务。
它以Docker公司开源的registry为基础,额外提供了如下功能:

  • 基于角色的访问控制
  • 基于策略的镜像复制
  • 镜像的漏洞扫描
  • AD/LDAP集成
  • 镜像的删除和空间清理
  • 友好的管理UI
  • 审计日志
  • RESTful API
  • 部署简单

2 harbor的部署

  • 步骤一:加密生成证书
mkdir  /data/certs -p
cd /data/certs

openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org.crt

harbor内存一直增大_harbor内存一直增大

harbor内存一直增大_nginx_02

  • 步骤二:拷贝证书到docker的配置目录下
cd /etc/docker
mkdir -p /certs.d/reg.westos.org
cp   /data/certs/westos.org.crt  /etc/docker/certs.d/reg.westos.org
cd /etc/docker/certs.d/reg.westos.org 
mv /westos.org.crt ca.crt

harbor内存一直增大_nginx_03

  • 步骤三:安装docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

harbor内存一直增大_harbor内存一直增大_04

  • 步骤四:安装harbor
tar zxf harbor-offline-installer-v1.10.1.tgz
vim /mnt/harborharbor.yml
更改hostname和certificate以及private__key的路径,设置harbor的密码,以及数据库的密码

harbor内存一直增大_私有仓库_05


harbor内存一直增大_harbor内存一直增大_06

harbor内存一直增大_harbor内存一直增大_07

harbor内存一直增大_私有仓库_08

安装并启动harbor

cd /mnt/harbor
./install.sh
cd /mnt/harbor
docker-compose ps

harbor内存一直增大_私有仓库_09

harbor内存一直增大_nginx_10

  • 步骤五:在另外一台虚拟机上做好解析
  • harbor内存一直增大_nginx_11

  • 步骤六:在刚刚做了解析的虚拟机的浏览器中输入:reg.westos.org来进行访问

harbor内存一直增大_harbor内存一直增大_12

harbor内存一直增大_nginx_13

harbor内存一直增大_harbor内存一直增大_14

harbor内存一直增大_docker_15

  • 步骤七:上传镜像到私有仓库
cd /etc/docker
vim daemon.json
systemctl daemon-reload
systemctl restart docker
docker login reg.westos.org				#上传镜像到私有仓库需要先登录,用户名和密码就是登录harbor仓库的用户名和密码
docker tag nginx	reg.westos.org/library/nginx	#修改镜像标签
docker push reg.westos.org/library/nginx			#上传镜像到私有仓库
docker rmi nginx
docker pull  reg.westos.org/library/nginx			#从私有仓库拉取镜像,看能否成功

harbor内存一直增大_私有仓库_16


harbor内存一直增大_私有仓库_17


harbor内存一直增大_harbor内存一直增大_18


harbor内存一直增大_私有仓库_19

  • 步骤八:从私有仓库拉取镜像
docker rmi reg.westos.org/library/nginx:latest		#先删除原有的镜像
docker pull reg.westos.org/library/nginx			#从私有仓库拉取镜像
docker images

harbor内存一直增大_nginx_20


harbor内存一直增大_docker_21


harbor内存一直增大_harbor内存一直增大_22

其他主机如何从私有仓库中来拉取和上传镜像

  • 步骤一:将server3上的/etc/docker/certs.d 拷贝到server2上,将/etc/docker/daemon.json同样拷贝到server2上
scp -r /etc/docker/certs.d server:/etc/docker
scp  /etc/docker/daemon.json server2:/etc/docker

harbor内存一直增大_私有仓库_23


harbor内存一直增大_docker_24

systemctl daemon-reload
systemctl restart docker
  • 步骤二:从私有仓库拉取镜像,上传镜像到私有仓库
docker pull reg.westos.org/portainer/portainer
docker images
docker tag yakexi007/game2048  reg.westos.org/library/game2048
docker push reg.westos.org/library/game2048

harbor内存一直增大_nginx_25

harbor内存一直增大_docker_26

注意上传镜像的时候需要登录

harbor内存一直增大_harbor内存一直增大_27


harbor内存一直增大_nginx_28


harbor内存一直增大_harbor内存一直增大_29