文章目录

搭建Harbor仓库

Harbor是什么?为什么会用到Harbor?
harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是 Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓 库,即Helm通过chart方式下载,管理,安装K8s插件,而chartmuseum 可以提供存储chart数据的仓库【注:helm就相当于k8s的yum】

另外它还整合了两个开源的安全组件,一个是Notary,另一个是Clair,Notary类似 于私有CA中心,而Clair则是容器安全扫描工具,它通过各大厂商提供的 CVE漏洞库来获取最新漏洞信息,并扫描用户上传的容器是否存在已知的 漏洞信息,这两个安全功能对于企业级私有仓库来说是非常具有意义的。

Harbor的三种安装方式

在线安装:从Docker Hub下载Harbor相关镜像,因此安装软件包非常小
离线安装:安装包包含部署的相关镜像,因此安装包比较大
OVA安装程序(第三方):当用户具有vCenter环境时,使用此安装程序,在部署 OVA后启动Harbor
我们这里也是采用的离线安装!!!

离线安装

Harbor官方地址:https://github.com/goharbor/harbor/releases
下载所需的安装包: harbor-offline-installer-v2.1.0.tgz

一)准备的环境:docker(已安装)

github下载docker-compose

curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

给docker-compose可执行权限

chmod +x /usr/local/bin/docker-compose

下载依赖包,默认安安装docker时已经下载

yum -y install yum-utils device-mapper-persistent- data lvm2

验证docker-compose安装完成

docker-compose -version
docker-compose version 1.25.0, build 0a186604

二)解压已经安装的harbor-offline-installer-v2.1.0.tgz

tar -zxf harbor-offline-installer-v2.1.0.tgz -C /usr/local/
cd harbor
cp harbor.yml.tmpl harbor.yml

PS: 这里跟以前不一样,没有了harbor.cfg文件,我们需要手动复制harbor.yml.tmpl在做修改即可

三)修改harbor.yml

PS: harbor作为私有仓库作用在公司内网,一般都是信任关系,没多大必要做https,使用http即可!
所以 把https相关的已经注释掉

四)安装harbor

./prepare
./install.sh

五)harbor的控制

docker-compose up -d 启动
docker-compose stop 停止
docker-compose restart 重新启动

六)访问Harbor

访问地址:http://172.16.46.111
默认的账号密码:admin/Harbor12345

访问Harbor登录页面

在这里插入图片描述

测试推送镜像

docker对于私有仓库默认都是使用https,所以添加在配置文件一行记录,声明一下
测试推送镜像

systemctl daemon-reload
systemctl restart docker

登录harbor仓库

[root@master ~]# docker login -u admin -p Harbor12345 172.16.46.111
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

上传镜像到私有仓库

docker tag 0901fa9da894 172.16.46.111/mynginx/nginx:v1.0
docker push 172.16.46.111/mynginx/nginx:v1.0