同时安装Clair和Notary
# ./install.sh --with-notary --with-clair

与notary或者Clair一起安装时管理Harbor的生命周期
当Harbour与Notary或者Clair一起安装时,docker-compose命令需要指定一个或者两个额外的模板文件。用于管理Harbour生命周期的docker-compose命令是:

# docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml  [ up|down|ps|stop|start ]
# docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml -f ./docker-compose.clair.yml  [ up|down|ps|stop|start ]

如果要在使用Notary安装Harbor时更改配置并重新部署Harbour,则应使用以下命令:
# docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml down -v
# vim harbor.cfg
# ./prepare --with-notary
# docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml up -d
# docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml -f ./docker-compose.clair.yml down -v
# vim harbor.cfg
# ./prepare --with-notary --with-clair
# docker-compose -f ./docker-compose.yml -f ./docker-compose.notary.yml -f ./docker-compose.clair.yml up -d

-----------------------------------------------

未修改配置文件的情况下,需要重启的话:

# docker-compose restart

要更改Harbour的配置,请先停止现有的Harbor实例并进行更新harbor.cfg。然后运行prepare脚本以填充配置。最后重新创建并启动Harbor的实例:

# docker-compose down -v

# vim harbor.cfg

# ./prepare

# docker-compose up -d

删除Harbor的容器,同时将镜像数据和Harbor的数据库文件保存在文件系统上
# sudo docker-compose down -v

删除Harbor的数据库和图像数据(用于干净的重新安装)
# rm -r /data/database
# rm -r /data/registry

修改docker配置:对非https仓库进行授和给Docker配置国内的镜像地址
cat /etc/docker/daemon.json

{
"insecure-registries": ["172.17.213.60"],"registry-mirrors": ["https://7bezldxe.mirror.aliyuncs.com/"]
}

---------------------------------------------------------------

持久数据和日志文件:
默认情况下,镜像数据保留在主机的/data/目录中。即使Harbor的容器被移除或重新创建,此数据仍保持不变。此外,Harbor使用rsyslog来收集每个容器的日志。默认情况下,这些日志文件存储在目标主机上的/var/log/harbor/目录中以进行故障排除。

故障排除:
当Harbor无法正常工作时,请运行以下命令以查明Harbor的所有容器是否处于UP状态:
# docker-compose ps
如果容器不是UP状态,检查目录容器的日志文件/var/log/harbor。例如,如果容器harbor-ui未运行,则应查看日志文件ui.log

Harbor简介

harbor官方是这么描述harbor的:Harbor是可靠的企业级Registry服务器。企业用户可使用Harbor搭建私有容器Registry服务,提高生产效率和安全度,既可应用于生产环境,也可以在开发环境中使用。github地址:https://github.com/vmware/harbor

需要说明的是,由于harbor只支持registry v2的api,所以对docker的版本也是有要求的,至少得>=1.6.0。同时harbor的安装还依赖于docker-compose,当然官方也提供直接使用kubernetes部署的yml文件。所以其实我们可以想见,harbor的部署一定是以容器的形式来完成的

harbor共有六个容器组成:

nginx:使用Nginx做反向代理
registry:官方的Docker registry
harbor_ui:harbor的核心服务。
harbor_log:运行着rsyslog的容器,进行日志收集。
harbor_db:由官方mysql镜像构成的数据库容器
harbor_jobservice:Harbor的任务管理服务。

部署安装请参考:https://www.cnrancher.com/docs/rancher/v2.x/cn/installation/registry/single-node-installation/

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

  • 基于角色的访问控制 - 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。
  • 镜像复制 - 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。
  • 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。
  • AD/LDAP 支持 - Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。
  • 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。
  • 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。
  • RESTful API - RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。
  • 部署简单 - 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。

harbor实战

基础安装

harbor 需要依赖docker,compose工具,需要提前安装好

yum install docker -y
systemctl start docker
yum install python-pip -y
pip install --upgrade pip
pip install docker-compose
pip install --upgrade docker-compose
docker-compose  -v
# docker-compose version 1.11.1, build 7c5d5e4

安装harbor并启动

wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz
tar -zxf harbor-offline-installer-v1.1.2.tgz
mv harbor /data/app/
mkdir  /data/db/cert/ -p
# 上传ca和key证书
ls /data/db/cert/
www.biglittleant.cn.crt  www.biglittleant.cn.key

如果不适用https上传证书,也可以不配置公钥

cd /data/app/harbor
cp harbor.cfg harbor.cfg.bak

# vim harbor.cfg
hostname = www.biglittleant.cn
ui_url_protocol = https
db_password = root123
max_job_workers = 3
customize_crt = on
ssl_cert = /data/db/cert/www.biglittleant.cn.crt
ssl_cert_key = /data/db/cert/www.biglittleant.cn.key
secretkey_path = /data/db

启动命令执行

sed -i 's#/data#/data/db#g' docker-compose.yml
sh ./install.sh 

配置文件解释

  • hostname:配置主机名称,不可以设置127.0.0.1,localhost这样的主机名,
  • ui_url_protocol:指定使用HTTP协议还是HTTPS协议。
  • Email settings:设置harbor的邮箱。
  • harbor_admin_password:设置管理员的初始密码
  • auth_mode:用户认证模式,默认是db_auth,也可以使用ldap验证。
  • db_password:使用db需要指定连接数据库的密码
  • self_registration:是否允许自行注册用户,默认是on,新版本可以在图形界面中修改。
  • max_job_workers:最大工作数,默认是三个

重启harbor

cd /data/app/harbor
docker-compose stop
docker-compose up -d 

harbor日志查看

cd /var/log/harbor
grep "ERROR" *  

浏览器访问

初始密码:admin/Harbor12345

上传镜像到harbor

创建相关的项目组和用户

第一步:创建项目组

第二步:创建项目用户

第三步:将用户加入到项目组中。

创建镜像并上传到私有镜像中

第一步:客户端登录镜像仓库

docker login www.biglittleant.cn
Username: niu
Password:
Login Succeeded

第二步:找到要上传的镜像CONTAINER ID

docker ps -a
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                                      NAMES
63ba23b2bf66        nginx:1.11.5                     "nginx -g 'daemon off"   18 minutes ago      Up 18 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx

第三步:上传镜像到私有仓库

docker commit -m 'my nginx' 63ba23b2bf66  test/nginx:v1
docker tag test/nginx:v1 www.biglittleant.cn/testproject/mynginx:v1
docker push www.biglittleant.cn/testproject/mynginx:v1
The push refers to a repository [www.biglittleant.cn/testproject/mynginx]
648541937c8a: Pushed
3f117c44afbb: Pushed
c4a8b7411af4: Pushed
fe4c16cbf7a4: Pushed
v1: digest: sha256:df87de0675559f8a5a9b01a1d340a95e9b152d9d40c282e5ad48bcdc59d488cd size: 1155

第四步:验证镜像是否上传成功

harbor其他配置

harbor使用http访问

如果使用http启动harbor需要在docker中配置--insecure-registry选项。
旧版本docker:

vim /etc/sysconfig/docker
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false --insecure-registry www.biglittlaent.cn'

新版本docker:

vim /etc/docker/daemon.json
{"insecure-registries" : ["www.biglittlaent.cn"]
}

重启harbor程序

使用 compose停止harbor

#  cd /data/app/harbor/
#  docker-compose downStopping nginx ... done
Stopping harbor-jobservice ... done
Stopping harbor-ui ... done
Stopping harbor-db ... done
Stopping registry ... done
Stopping harbor-log ... done

修改harbor.cfg配置文件后

docker-compose down ## 第一步停止harbor
vim harbor.cfg              ## 修改镜像
sudo install.sh             ## 重新初始化镜像

harbor数据路径: /data/
日志路径:/var/log/harbor

扩展阅读

docker 登录成功后会在当前用户的家目录中创建如下文件

vim ~/.docker/config.json
{"auths": {"192.168.56.13": {"auth": "bml1OkhhcmJvcjEyMzQ1"}}
}

登出后如下文件被清除

vim ~/.docker/config.json
{"auths": {}
}

参考文档

harbor-文件配置
harbor-https配置

报错汇总

打开浏览器报502错误

原因:
代码内部将路径写死成了/data/如果你更换路径需要修改docker-compose.yml文件

docker-compose down
sed -i 's#/data#/data/db#g' docker-compose.yml
sh ./install.sh

VMware Harbor学习相关推荐

  1. (十九)VMware Harbor 详细介绍

    一 . 简介 Harbor是VMware公司开源的企业级DockerRegistry项目,项目地址为https://github.com/vmware/harbor.其目标是帮助用户迅速搭建一个企业级 ...

  2. 使用vmware Harbor搭建Mirror Registry

    把Harbor配置为Mirror服务器后,在客户端使用docker pull 不存在于harbor仓库中的image时,mirror服务器先从remote registry 中pull image,并 ...

  3. VMware Harbor 开源的Docker Registry管理项目

    一.简介 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制, AD/LDAP ...

  4. VMware vSphere学习整理

    知识点整理 内存选择 一般来说,每个虚拟机需要的内存在1~4GB甚至更多,还要为VMware ESXi预留一部分内存2个6核的2U服务器配置64GB内存,4个6核或8核心的4U服务器配置128GB或更 ...

  5. VMware vSphere学习笔记二

    VMware的虚拟化产品 个人用产品(寄居架构) 1.VMware Workstation 拥有Windows和Linux版本,而在Mac OS下的VMware Workstation则称为VMwar ...

  6. linux vmware 服务,学习笔记:在Linux虚拟机上搭建node服务

    最近在研究虚拟机,有一些服务因为编译环境或者系统原因,可能无法在自己的电脑上运行,使用虚拟机可以很好的解决这个问题.虚拟机是通过软件模拟的.具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机 ...

  7. Docker: vmware企业级docker镜像私服--Harbor的搭建

    一 Harbor仓库介绍 Harbor是由VMware公司开源的企业级的Docker Registry管理项目,Harbor主要提供Dcoker Registry管理UI,提供的功能包括:基于角色访问 ...

  8. Harbor的搭建(vmware企业级docker镜像私服)

    1.下载harbor,地址https://github.com/vmware/harbor 2.进入harbor-master/Deploy目录,修改harbor.cfg文件,主要修改以下信息     ...

  9. docker 推送到本地仓库_Docker_学习笔记系列之仓库

    docker仓库分公有和私有之分,本文主要介绍如何搭建私有仓库 1. 简介 Docker仓库,类似于yum仓库,是用来保存镜像的仓库.为了方便的管理和使用docker镜像,可以将镜像集中保存至Dock ...

最新文章

  1. 关于android相机开发中遇到的内存溢出的问题
  2. 动软代码生成器之模板功能介绍
  3. Fragment容器Activity
  4. ARM处理器之MMU和Cache
  5. 大企业中,Java面试官最爱问的问题集锦
  6. http://blog.csdn.net/evankaka/article/details/45155047
  7. 第二次课动手动脑的问题以及课后实验性的问题
  8. cantor数表 and nyoj85有趣的数
  9. GO WBE学习笔记
  10. 动漫测试题软件,Flash动画考试试卷
  11. 第四章 需求分析,用例分析法
  12. 区块链人才急聘:一大波高薪职位等你来
  13. Windows版bitcoin客户端编译
  14. 苹果电脑服务器连接显示器,苹果电脑如何外接显示器 苹果电脑外接显示器设置方法...
  15. 如何将WORD转换成EXCEL
  16. OpenCV:二值化函数cv2.threshold
  17. “站在巨人的肩膀上”
  18. 怎样实现cmd命令窗口的快速复制粘贴操作
  19. c++数据结构小助手 : 可视化树与图工具
  20. 求助:matlab报错:位置 2 处的索引超出数组边界(1)

热门文章

  1. js 重置表单 reset form
  2. Linux --------- 远程操作工具
  3. FME对CAD扩展属性的读写
  4. C语言函数递归(传入一个整数,打印数字的每一位)
  5. 携程产品经理笔试题-2020秋招
  6. @程序员,对抗 996,你真的准备好了吗?| 文末有彩蛋
  7. Spark 学习入门教程
  8. 克劳德・香农(Claude Shannon)于1937年发表《对继电器和开关电路中的符号分析》
  9. ARM汇编之MOV指令
  10. [转]800个有趣句子帮你记忆7000个单词