Lucent's Blog

当时明月在 曾照彩云归

人生不相见,动如参与商。

6LCi5Y2O5qKFLOaIkeaDs+S9oOS6hg==


搭建Harbor镜像仓库

一、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

image-20210527120844177

下载后拷贝到服务器,并解压

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

image-20210527121548731

  • hostname修改为本机ip,也可以用域名
  • port按需修改
  • harbor_admin_password 是admin账号的密码
  • https的相关配置注释掉即可,可以直接在nginx上配置https

4.开始安装

#按顺序执行
./prepare
./install.sh

等待一会儿,安装程序会提示安装成功!

5.使用

在harbor目录下可以通过docker-compose stop/start来控制harbor的启动和关闭

浏览器打开 ip:端口,即可进入harbor,账号admin,密码是写在配置文件里的

进入后创建一个项目

image-20210527122457066

进入项目后可以看到推送进来的镜像

我们可以使用命令向仓库推送打包好的镜像

6.命令推送镜像

打开终端/cmd,登陆harbor

docker login -u lucent -p Xhm5201314 10.1.120.144:90

image-20210527123740191

查看打包好的镜像

docker images

image-20210527123848770

标记本地镜像,以pce-job为例

docker tag pce-job:latest 10.1.120.144:90/pce/pce-job:latest

标记后的结果

image-20210527124151715

将标记好的镜像推送到私有仓库

docker push 10.1.120.144:90/pce/pce-job:latest #push后面的内容就是刚刚标记好的镜像名字,如上图

image-20210527124401642

这样就推送到仓库了,可以在网页看到

image-20210527124444864

image-20210527124504549

7.图形界面

idea中可以使用图形界面完成上面操作

首先需要设置仓库

image-20210527125354869

然后选择镜像

image-20210527125509453

右键选择push image

image-20210527125547628

填入信息

image-20210527125735987

点击ok即可

image-20210527125811574

上传镜像的方式有很多种,可自行选择

三、注意

在测试环境或者没有启用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,

只需要通过该软件的设置进行修改即可

image-20210527134543808

如果是其他方式安装的。。。自己找找在哪吧,建议官网下载安装。

上一篇

为什么需要服务注册与发现如下图,当A用户服务调用B订单服务时,一般情况下会使用httputils请求B服务的IP:port(http://192.168.0.200:8080/xxx)即可。但是当B订单服务的网络信息(IP等)发生改变则A对应服务的代码配置也要做对应的修改,增加服务间的耦合性和运维部…

阅读
下一篇

Elasticsearch的使用…

阅读