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
- 步骤二:拷贝证书到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
- 步骤三:安装docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 步骤四:安装harbor
tar zxf harbor-offline-installer-v1.10.1.tgz
vim /mnt/harborharbor.yml
更改hostname和certificate以及private__key的路径,设置harbor的密码,以及数据库的密码
安装并启动harbor
cd /mnt/harbor
./install.sh
cd /mnt/harbor
docker-compose ps
- 步骤五:在另外一台虚拟机上做好解析
- 步骤六:在刚刚做了解析的虚拟机的浏览器中输入:reg.westos.org来进行访问
- 步骤七:上传镜像到私有仓库
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 #从私有仓库拉取镜像,看能否成功
- 步骤八:从私有仓库拉取镜像
docker rmi reg.westos.org/library/nginx:latest #先删除原有的镜像
docker pull reg.westos.org/library/nginx #从私有仓库拉取镜像
docker images
其他主机如何从私有仓库中来拉取和上传镜像
- 步骤一:将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
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
注意:上传镜像的时候需要登录