Harbor安装很简单,不过安装以后要怎么操作,百度了好久都没有找到实操的方法,怎么从官方拉取镜像后更新到私有仓库中?这个弄了好久,一样样测试后才找到方法,对于不熟悉私有仓库的小白来说,有点坑。还好花了些时间解决了。

1. Harbor简介

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

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

2. 安装docker-compose组件

yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
pip install docker-compose
docker-compose version

3. 安装Harbor

安装Docker

先按《安装Docker》文档安装好decker环境

修改docker配置项

vi /usr/lib/systemd/system/docker.service

修改下面内容项(insecure-registry值为当前服务器ip)

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --selinux-enabled=false --insecure-registry 192.168.15.216

重启服务

systemctl daemon-reload
systemctl restart docker

获取Harbor安装包下载链接

登录 https://github.com/goharbor/harbor/releases/ 找到想要安装的版本,获取offline版本的下载链接

执行命令安装Harbor

# 创建日志存放目录
mkdir -p /data/logs/harbor cd /usr/local/src/
wget https://github.com/goharbor/harbor/releases/download/v1.10.0/harbor-offline-installer-v1.10.0.tgz
tar -zxvf harbor-offline-installer-v1.10.0.tgz
cd harbor
vi harbor.yml

修改以下内容

# 当前服务器ip,安装完成后就可以用这个地址访问web管理页面
hostname: 192.168.1.xx # 将https的所有项注释掉,不开启https访问
#https:
# https port for harbor, default is
#port:
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path # harbor ui后台管理员密码
harbor_admin_password: xxxxx
#必须设置,否则安装后重装时不能修改,除非删除数据库后重新安装
password: xxxx
# harbor日志存放路径
location: /data/logs/harbor

然后运行脚本进行安装

./prepare
./install

验证安装

在浏览器输入你的服务器地址 http://192.168.1.xx/ 访问管理页面

输入账号:admin 以及配置参数时的管理员密码,就可以正常登录了

docker-compose启动与停止命令

docker-compose start
docker-compose stop

修改配置操作

如果需要更改harbor的配置项,可按以下步骤进行修改更新

docker-compose down -v
vim /usr/local/harbor/harbor.yml
./prepare
docker-compose up -d

测试镜像的拉取与更新

PS:可以在另一台安装了docker的服务器上做以下测试

配置registry服务是安全可信赖的

vi /etc/docker/daemon.json

将内容修改为下面配置(insecure-registries要改为你的服务器地址)

{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"insecure-registries": [
"192.168.1.xx"
],
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://a8qh6yqv.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"
]
}

重启docker

systemctl restart docker

测试镜像拉取与更新

# 从官网https://hub.docker.com/search?q=&type=image 拉取镜像
docker pull redis # 查看已下载的镜像
docker images # 使用tag将镜像标志为要推送到私有仓库的镜像(默认私有仓库镜像目录为library)
docker tag redis 192.168.1.xx/library/redis
# 命令中,redis后面不添加版本参数,则表示当前版本号为latest,可以指定为:v1..0等版本号,指定后拉取镜像时,也需要加上版本号 # 登录harbor,这里需要添加url参数,不然默认登录的是官网,url需要加上http,不然默认是https
docker login http://192.168.1.xx
# 输入用户名admin,以及密码,如果是后台新建的账号,需要在项目=>library(对应的项目名称)=>成员 中添加对应的账号 # 将镜像提交到私有仓库中
docker push 192.168.1.xx/library/redis
# 提交后登录web管理端,进入项目=>library(对应的项目名称)=>镜像仓库 就可以看到新增的镜像了 # 测试从私有仓库中安装镜像
# 查看当前服务器镜像
docker images # REPOSITORY TAG IMAGE ID CREATED SIZE
# 192.168.1.xx/library/redis latest c33c9b2541a8 hours ago .2MB
# redis latest c33c9b2541a8 hours ago .2MB # 删除当前服务器docker上的镜像
docker rmi 192.168.1.xx/library/redis:latest
docker rmi redis:latest # 查看当前服务器镜像(redis镜像已不存在)
docker images # 从私有仓库中安装镜像
docker pull 192.168.1.xx/library/redis # 查看当前服务器镜像
docker images # REPOSITORY TAG IMAGE ID CREATED SIZE
# 192.168.1.xx/library/redis latest c33c9b2541a8 hours ago .2MB

以上操作都是在私有仓库中的默认库library操作的,如果需要分项目创建不同的库,可以登录web管理端,在项目中创建新的库

如果需要针对不同的人员操作仓库进行管理,可以在用户管理中添加账号,然后在新建库的成员中,添加用户并绑定对应的操作权限

版权声明:本文原创发表于 博客园,作者为 AllEmpty 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

作者博客:http://www.cnblogs.com/EmptyFS/

Harbor本地镜像库安装与使用的更多相关文章

  1. docker搭建harbor私有镜像库

    创建harbor私有镜像库 一.部署准备: harbor软件包   在部署节点上: 1)解压harbor的软件包将harbor目录下所有文件发送到/opt/目录下   tar zxvf harbor- ...

  2. docker部署harbor私有镜像库(3)

    一.harbor介绍 在实际生产运维中,往往需要把镜像发布到几十.上百台或更多的节点上.这时单台Docker主机上镜像已无法满足,项目越来越多,镜像就越来越多,都放到一台Docker主机上是不行的,我 ...

  3. 第4篇创建harbor私有镜像库

        一.部署准备: 1.准备harbor软件包       在部署节点上:       2.挂载一个磁盘,专门存储harbor镜像和文件     3.进入到/etc/docker/harbor/目 ...

  4. Windows 10通过本地镜像离线安装.NET 3.5

    在Windows10中,当我们安装某些软件的时候会提示"你的电脑上的应用需要使用以下Windows功能:.NET Framework 3.5(包括.NET 2.0和3.0)",由于 ...

  5. kubernetes第三章--创建harbor私有镜像库

  6. ubuntu16搭建harbor镜像库

    参考 https://blog.csdn.net/qq_35720307/article/details/86691752 目的:搭建本地镜像库,方便快速的存放和拉取需要的镜像文件.

  7. [How to]基于本地镜像的yum镜像源搭建

    1.简介 本文介绍如何在封闭环境(无外网)下安装离线安装本地镜像与基于本地镜像的yum镜像源. 2.环境版本交代: OS:CentOS-6.7-x86_64-minimal yum: yum-3.2. ...

  8. Yum本地Rpm库设置

    http://blog.csdn.net/dc_726/article/details/8497188   1 Yum对光盘的支持 查看/etc/yum.repos.d/CentOS-Media.re ...

  9. 微服务架构 - 基于Harbor构建本地镜像仓库

    之前写过<搭建docker本地镜像仓库并提供权限校验及UI界面>文章,然后有同仁评论道这样做太复杂了,如果Harbor来搭建会更简单同时功能也更强大.于是抽时间研究了基于Harbor构建本 ...

随机推荐

  1. ADO.NET_02

    一.说明 这个例子是小白跟着学习代码记录,模拟用户登陆功能,并可以查询所有学生信息. 二.代码 共4个文件,如下 App.config <?xml version="1.0" ...

  2. Plupload的上传机制

    plupload支持多文件上传.经过测试发现,plupload在上传多个文件时,会把多个文件拆分成单个的一个一个上传.

  3. QT 开发ros gui过程中遇到:error: catkin_package() include dir 'include' does not exist relative to '/home/jun/catkin_ws/src/qt_ros_test' /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_p

    这是因为在ros工作空间的包中没有include文件夹造成的,所以在该路径下创建include的文件夹,问题就解决了.

  4. Vue.js 第5章 webpack配置

    为什么我们需要打包构建工具:因为我们以后做项目的时候,会使用到很多种不同的工具或者语言,这些工具或者语言其实浏览器并不支持 webpack 是一个现代 JavaScript 应用程序的模块打包器(mo ...

  5. 在springmvc中 @RequestMapping(value={"", "/"})是什么意思

    这个意思是说请求路径 可以为空或者/ 我给你举个例子:比如百度知道的个人中心 访问路径是 http://zhidao.baidu.com/ihome,当然你也可以通过 http://zhidao.ba ...

  6. Python深入:super函数

    新式类中最酷的,或者也是最不平常的特性之一,可能就是编写“cooperative类”.‘cooperative类’通过多继承,使用我称之为‘cooperative super call’的模式. 先来 ...

  7. Rikka with Mista 线段树求交点个数

    由于上下线段是不可能有交点的 可以先看左右线段树,按照y递增的顺序,对点进行排序. 升序构造,那么对于从某一点往下的射线,对于L,R进行区间覆盖,线段交点个数就是单点的被覆盖的次数. 降序构造,那么对 ...

  8. Ubuntu 18.04LTS安装配置Java OpenJDK8

    安装OpenJDK8 sudo apt-get install openjdk-8-jdk 配置Java环境变量 sudo vim /etc/profile 在profile末尾添加以下内容: exp ...

  9. 在 Linux 安装 IIS?

    在 Linuxe 安装 IIS? 在群里有人说他的老大让他在 Linux 中安装 IIS. 一群人回复不同的解决方案. 在 Linux 安装虚拟机,再安装 Windows. (哈哈哈) 这个问题虽然有 ...

  10. Android本地数据存储: ASimpleCache

    一:前言 在上一篇博客Android本地数据存储: Reservoir 博客中,我提到,除了Reservoir库,还可以采用ASimpleCache开源库,来实现本地数据存储.昨天并没有仔细的对比Re ...