一、Harbor简介
- 虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。
- Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。
- 它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制, AD/LDAP 集成,日志审核等功能,完全的支持中文。
二、Harbor安装
首先需要确保已经安装了docker和docker compose
1.下载安装包
下载最新版离线安装包即可,地址:https://github.com/goharbor/harbor/releases
下载后拷贝到服务器,并解压
tar -zvxf xxx.tgz
2.加载离线镜像
进入解压后到harbor目录
#进入目录
cd harbor
#加载镜像
docker load -i harbor.v2.2.2.tar.gz
3.修改配置文件
#复制一份出来
cp harbor.yml.tmpl harbor.yml
#修改
vi harbor.yml
- hostname修改为本机ip,也可以用域名
- port按需修改
- harbor_admin_password 是admin账号的密码
- https的相关配置注释掉即可,可以直接在nginx上配置https
4.开始安装
#按顺序执行
./prepare
./install.sh
等待一会儿,安装程序会提示安装成功!
5.使用
在harbor目录下可以通过docker-compose stop/start
来控制harbor的启动和关闭
浏览器打开 ip:端口,即可进入harbor,账号admin,密码是写在配置文件里的
进入后创建一个项目
进入项目后可以看到推送进来的镜像
我们可以使用命令向仓库推送打包好的镜像
6.命令推送镜像
打开终端/cmd,登陆harbor
docker login -u lucent -p Xhm5201314 10.1.120.144:90
查看打包好的镜像
docker images
标记本地镜像,以pce-job为例
docker tag pce-job:latest 10.1.120.144:90/pce/pce-job:latest
标记后的结果
将标记好的镜像推送到私有仓库
docker push 10.1.120.144:90/pce/pce-job:latest #push后面的内容就是刚刚标记好的镜像名字,如上图
这样就推送到仓库了,可以在网页看到
7.图形界面
idea中可以使用图形界面完成上面操作
首先需要设置仓库
然后选择镜像
右键选择push image
填入信息
点击ok即可
上传镜像的方式有很多种,可自行选择
三、注意
在测试环境或者没有启用https的情况下,客户端在与harbor交互的时候会报错。
- 客户端指的是所有需要与仓库产生交互的机器,比如你的电脑或部署项目的服务器
- 交互是指 docker login、docker pull、docker push这类操作
- 原因是docker在某个版本之后默认了客户端与仓库之间的通信是https
解决方法:修改docker配置,允许HTTP
在daemon.json中加上如下内容
{
"insecure-registries": ["10.1.120.144:90"]
}
#这里的ip和端口要根据实际情况设置,json格式一定要正确,空格不能多也不能少,否则docker启动报错
linux:
#编辑daemon.json,并将上面内容复制进去
vi /etc/docker/daemon.json
#重载配置,重启docker
systemctl daemon-reload
systemctl restart docker
#进入harbor文件夹,启动harbor
docker-compose start
mac/windows
个人电脑上也存在daemon.json这个文件,如果你是通过docker desktop安装的docker,
只需要通过该软件的设置进行修改即可
如果是其他方式安装的。。。自己找找在哪吧,建议官网下载安装。