VMware Harbor 学习
Harbor简介
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
shell> cd /data/app/harbor/
shell> docker-compose down
Stopping 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": {}
}
参考文档
报错汇总
打开浏览器报502错误
原因:
代码内部将路径写死成了/data/如果你更换路径需要修改docker-compose.yml文件
docker-compose down
sed -i 's#/data#/data/db#g' docker-compose.yml
sh ./install.sh
VMware Harbor 学习的更多相关文章
- VMware Harbor学习
同时安装Clair和Notary# ./install.sh --with-notary --with-clair 与notary或者Clair一起安装时管理Harbor的生命周期当Harbour与N ...
- (十一)VMware Harbor 配置管理
VMware Harbor 配置管理 这篇主要学习一下,项目下的配置管理. 主要功能就是修改项目的访问权限 当将访问权限改为
- vmware Harbor 复制功能试用
vmware Harbor 复制功能试用 Harbor基于策略的Docker镜像复制功能,可在不同的数据中心.不同的运行环境之间同步镜像,并提供友好的管理界面,大大简化了实际运维中的镜像管理工作. 功 ...
- VMware harbor && minio 搭建企业docker私有镜像以及需要注意的问题
1. docker harbor 配置 建议使用在线安装的模式(离线包太大了) 首先需要安装docker-compose .docker .mino (具体安装可以参考官网后者我的博 ...
- (六)VMware Harbor简单使用
VMware Harbor简单使用 1. 登陆: [用户:admin , 密码:Harbor12345]配置文件里设置的 登陆后的界面: 2. 用户管理: 2.1 新近用户 3. 仓库管理: 3.1 ...
- (八)VMware harbor 成员管理
(一)VMware harbor 成员管理 可以给项目添加成员,成员必须是已经注册的成员. 添加成员后,成员就会有4种角色:项目管理员,维护人员,开发人员,访客. 1.1 新建成员 1.2 修改角色 ...
- (四)VMware Harbor 配置文件
VMware Harbor 配置文件 :harbor.yml # Configuration file of Harbor # The IP address or hostname to access ...
- (一)VMware Harbor 简介
(一)Harbor简介 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docker Distribu ...
- 【Harbor学习笔记】-教你快速搭建Docker私有仓库
目录 架构图 Harbor依赖的外部组件 Harbor自有组件 核心组件 安装 1. 下载离线安装包 2. 配置 harbor.cfg (harbor.yml) 3. 启动 Harbor 安装配置问题 ...
随机推荐
- C# 空合并运算符 ??
C#语言中,??运算符称为空合并运算符: a??b形式的空合并表达式要求a为可以为null的类型或引用类型.如果a为非null,则a??b的结果为a:否则,结果为b.仅当a为null时,该操作才计算b ...
- Linux基础学习1--档案的属性和目录
用命令 ls -al可以列出当前所有档案,和档案的各种情况 第一块是档案属性:一共10个,第一个代表档案类型 {d:目录,-:档案,l:连接档,b:接口设备,c:串行端口设备},接下来是三个一组,第一 ...
- golang代码片段(摘抄)
以下是从golang并发编程实战2中摘抄过来的代码片段,主要是实现一个简单的tcp socket通讯(客户端发送一个数字,服务端计算该数字的立方根然后返回),写的不错,用到了go的并发以及看下郝林大神 ...
- CF898A Rounding
题意翻译 给你一个数字,将其“四舍六入”,末尾为5舍去或进位都可,求最终的数字. 题目描述 Vasya has a non-negative integer n n n . He wants to r ...
- [PHP] PHP的纯CPU基准测试(PHP5.5.9 vs PHP7.2.1)
PHP的纯CPU基准测试(PHP5.5.9 vs PHP7.2.1): 1.bench.php 可在PHP源代码的 php-src/Zend 目录 2.micro_bench.php 也可以在 PHP ...
- 撩课-Java每天5道面试题第10天
撩课Java+系统架构 视频 点击开始学习 81.Servlet的会话机制? HTTP 是一种无状态协议, 这意味着每次客户端检索网页时, 都要单独打开一个服务器连接, 因此服务器不会记录下 先前客户 ...
- Java 时区转换(UTC+8 到 UTC 等等)
前言:需要做时区转换,知道北京为UTC+8,东京为UTC+9,世界标准时间为UTC,所以下面的代码是只需要知道时区是+8还是+9还是0就可以了,不需要使用"CTT". " ...
- js中获取css样式的两种方式
1. 对象.style.样式名 弊端就是只能获取行内样式 2.window.getComputedStyle(对象,null); 最好用第二种方式 <!DOCTYPE html> < ...
- BZOJ1968 [Ahoi2005] 约数研究
Description Input 只有一行一个整数 N(0 < N < 1000000). Output 只有一行输出,为整数M,即f(1)到f(N)的累加和. Sample Input ...
- PHP开发支付宝之电脑网站支付--流程简介
前言 前端时间自己开发了一个drupal的支付宝模块,现在整理一下过程,因为支付宝官方网站提供的接口及文档都是新接口的,而且使用新接口的过程比较麻烦一点,所以整理一下 1.支付宝的账号必须经过企业资格 ...