docker——harbor
为什么要用harbor?
在实际生产运维中,往往需要把镜像发布到几十、上百台或更多的节点上。这时单台Docker主机上镜像已无法满足,项目越来越多,镜像就越来越多,都放到一台Docker主机上是不行的,我们需要一个像Git仓库一样系统来统一管理镜像。这里介绍的是一个企业级镜像仓库Harbor,将作为我们容器云平台的镜像仓库中心。
Habor是由VMWare公司开源的容器镜像仓库。事实上,Habor是在Docker-Registry上进行了相应的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基于角色的访问控制 ,AD/LDAP集成以及审计日志等,足以满足基本企业需求。
Harbor和Registry的比较:
Harbor和Registry都是Docker的镜像仓库,但是Harbor作为更多企业的选择,是因为相比较于Regisrty来说,它具有很多的优势。
1、提供分层传输机制,优化网络传输
Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。
2、提供WEB界面,优化用户体验
只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像。
3、支持水平扩展集群
当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解。
4、良好的安全机制
企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,具有更好的安全性。
5、Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制。kubernetes中通过namespace来对资源进行隔离,在企业级应用场景中,通过将两者进行结合可以有效将kubernetes使用的镜像资源进行管理和访问控制,增强镜像使用的安全性。尤其是在多租户场景下,可以通过租户、namespace和项目相结合的方式来实现对多租户镜像资源的管理和访问控制。
搭建harbor:
第一步:
yum install epel-release #下载扩展源
yum install -y python-pip
pip install --upgrade pip
pip install docker-compose
第二步:下载harbor
https://github.com/goharbor/harbor/releases
第三步:解压harbo安装包
[root@localhost ~]# tar xf harbor-offline-installer-v1.8.2.tgz
第四步:修改配置文件
[root@localhost ~]# cd harbor/
[root@localhost harbor]# vim harbor.yml
...
hostname: 192.168.59.200
...
第五步:执行harbor脚本
[root@localhost harbor]# ./install.sh
第六步:浏览器配置
...
账号/密码: admin/Harbor12345
harbor_admin_password: Harbor12345 #harbor.yml
...


第七步:镜像改名
[root@localhost harbor]# docker tag httpd:latest 192.168.59.200/test/httpd:v1
第八步:修改docker配置文件
[root@localhost harbor]# vim /etc/docker/daemon.json
...
{
"registry-mirrors": ["https://6wnyrhwf.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.59.200:8878"],
"insecure-registries": ["192.168.59.200"]
}
...
第九步:重启docker
[root@localhost harbor]# systemctl restart docker
第十步:启动harbor
[root@localhost harbor]# docker-compose start
Starting log ... done
Starting postgresql ... done
Starting redis ... done
Starting registry ... done
Starting core ... done
Starting jobservice ... done
Starting portal ... done
Starting proxy ... done
Starting registryctl ... done
第十一步:需要登录harbor
[root@localhost harbor]# docker login 192.168.59.200
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
第十二步:推送镜像至harbor
[root@localhost harbor]# docker push 192.168.59.200/test/httpd
The push refers to repository [192.168.59.200/test/httpd]
0f8d971d177b: Pushed
97fd31ecd005: Pushed
82155933cfa6: Pushed
2fd9f57029b0: Pushed
02bd518ef304: Pushed
b8342f9976fc: Pushed
2c833f307fd8: Pushed
第十三步:harbor查看

第十四步:拉取镜像
[root@localhost harbor]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.59.200/test/httpd v1 fb2f3851a971 18 months ago 178MB
[root@localhost harbor]# docker image rm -f fb2f3851a971
[root@localhost harbor]# docker pull 192.168.59.200/test/httpd:v1
v1: Pulling from test/httpd
3d77ce4481b1: Pull complete
73674f4d9403: Pull complete
d266646f40bd: Pull complete
ce7b0dda0c9f: Pull complete
01729050d692: Pull complete
014246127c67: Pull complete
7cd2e04cf570: Pull complete
Digest: sha256:58270ec746bed598ec109aef58d495fca80ee0a89f520bd2430c259ed31ee144
Status: Downloaded newer image for 192.168.59.200/test/httpd:v1
192.168.59.200/test/httpd:v1
[root@localhost harbor]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.59.200/test/httpd v1 fb2f3851a971 18 months ago 178MB
docker——harbor的更多相关文章
- 014.Docker Harbor+Keepalived+LVS+共享存储高可用架构
一 多Harbor高可用介绍 共享后端存储是一种比较标准的方案,将多个Harbor实例共享同一个后端存储,任何一个实例持久化到存储的镜像,都可被其他实例中读取.通过前置LB组件,如Keepalived ...
- docker harbor 清理释放存储空间
0.harbor界面端清理镜像 1.停止docker harbor docker-compose stop 2.预览运行效果 docker run -it --name gc --rm --volum ...
- ubuntu 安装企业级容器 docker harbor
安装docker harbor 企业级容器 环境说明: 操作系统: ubuntu16.04.5 LTS IP地址: 192.168.31.129 https://github.com/goh ...
- Docker Harbor 高可用 1.7.5版本(七)
环境说明: node1 10.10.5.135 仓库 1 node2 10.10.5.136 仓库 2 node3 10.10.5.137 客户端 实验内容: Harbor 可以在两台主机之间相互同步 ...
- Docker Harbor私有仓库部署与管理 (超详细配图)
Docker Harbor私有仓库部署与管理 1.Harbor 介绍 2.Harbor部署 3.Harbor管理 1.Harbor 介绍: 什么是 Harbor ? Harbor 是 VMware 公 ...
- .NET遇上Docker - Harbor的安装与基本使用
Harbor是一个开源企业级Docker注册中心,可以用于搭建私有的Docker Image仓库.可以实现权限控制等. 安装Harbor 首先,需要安装Docker和Docker Compose,参考 ...
- Docker: Harbor一些小知识
镜像文件上传到私有仓库harbor后,镜像的物理存储位置在哪里? 这些信息记录在docker-compose.yml里,通过观察发现 镜像存储在了宿主机的 volumes: - /data/regis ...
- docker harbor 安装 使用总结
总结:没有验证,但是猜测. 我这个harbor的机器上 有起了一个 docker的 registry, 5000端口的,不知道是不是二者冲突. 猜测是这个情况. 1. 安装参考 收藏的链接 1.1 ...
- docker harbor搭建笔记
介绍 Harbor是VMware公司开源的一个用于存储和分发Docker镜像的企业级Registry服务器,以Docker开源的Registry为基础,通过添加一些企业必需的功能特性,例如安全.标识和 ...
随机推荐
- bs4 UnicodeEncodeError: 'gbk' codec can't encode character '\xa0'
Problem: 写爬虫时,出现了以下错误: 意思是Unicode编码错误,gbk编解码器不能编码\xa0字符. 爬取信息包含中文,使用BeautifulSoup库解析网页,用get_text()方法 ...
- CS184.1X 计算机图形学导论 罗德里格斯公式推导
罗德里格斯公式推导 图1(复制自wiki) 按照教程里,以图1为例子,设k为旋转轴,v为原始向量. v以k为旋转轴旋转,旋转角度为θ,旋转后的向量为vrot. 首先我们对v进行分解,分解成一个平行于k ...
- MySQL优化与实践
一.MySQL优化概括 二.SQL优化 实践: 1.查看是否开启了慢查询日志 show variables like 'slow_query_log' 没有开启 2.查看是否开启了未使用索引SQL记录 ...
- RegExp实现字符替换
将字符串组中的所有Paul替换成Ringo,g:执行全局匹配,查找所有匹配而非在找到第一个匹配后停止;\b:匹配单词边界,划分匹配字符的起始范围 <!DOCTYPE html> <h ...
- 一次对php大马的后门的简单分析
有人分享了一个php大马(说是过waf),八成有后门,简单分析了一次 <?php $password='Shiqi';//登录密码(支持菜刀) //----------功能程序--------- ...
- PHP array_reverse
1.函数的作用:将数组中的元素顺序反转 2.函数的参数: @params array $array 需要反转顺序的数组 @params $preversed_key 数值索引是否保持不变,非数值索引 ...
- bcache 状态/配置 文件详细介绍(翻译自官网)
声明: 文中 斜体带下划线 的段落为翻译不够准确的段落 原文:https://www.kernel.org/doc/Documentation/bcache.txt 官网:https://bcach ...
- win10-搭建git工具
.下载安装 git .生成 SSH 密钥 ssh-keygen -t rsa -C "email@com" -b 4096 .配置gitlab 增加 SSH 密钥. .配置 git ...
- JetBrains系列软件激活码
T3ACKYHDVF-eyJsaWNlbnNlSWQiOiJUM0FDS1lIRFZGIiwibGljZW5zZWVOYW1lIjoi5bCP6bifIOeoi+W6j+WRmCIsImFzc2lnb ...
- 面试必问的Synchronized知道这些就可以了
Synchronized关键字算是Java的元老级锁了,一开始它撑起了Java的同步任务,其用法简单粗暴容易上手.但是有些与它相关的知识点还是需要我们开发者去深入掌握的.比如,我们都知道通过Synch ...