docker搭建私有harbor仓库

一 harbor是什么

Harbor是VMware公司开源的企业级Docker Registry项目,其目标是帮助用户迅速搭建一个企业级的Docker registry服务。

它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志(Auditlogging) 等企业用户需求的功能,同时还原生支持中文。

简单说来,Harbor封装了Docker的registry v2版本,提供了许多便捷管理的特性,方便用户操作。

二 harbor架构与组件介绍

在这里插入图片描述

功能描述
Proxy通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务
Registry负责储存Docker镜像,并处理docker push/pull命令
Core servicesHarbor的核心功能,包括UI、webhook、token服务
Database为core services提供数据库服务
Log collector负责收集其他组件的log,供日后进行分析

三 搭建私有harbor仓库

3.1 案例环境

主机主机名/IP地址主要软件
服务端harbor/20.0.0.10docker、docker-compose、harbor-offline
客户端client/20.0.0.50docker

3.2 安装docker-compose插件

[root@Harbor ~]# curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m`-o
[root@Harbor ~]# chmod +x docker-compose 
[root@Harbor ~]# mv docker-compose /usr/local/bin/

3.3 解压harbor软件包

[root@Harbor ~]# ls   ##查看软件包
 harbor-offline-installer-v1.2.2.tgz 
[root@Harbor ~]# tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/   ##解压

3.4 修改配置文件 harbor.cfg

[root@Harbor ~]# vim /usr/local/harbor/harbor.cfg
hostname = 20.0.0.40    ##第5行,修改为本地地址
harbor_admin_password = Harbor12345  ##第59行,设置harbor登录密码,默认为Harbor12345

进入/usr/local/harbor目录

[root@Harbor ~]# cd /usr/local/harbor/    
[root@Harbor harbor]# ls   ##查看文件
common                    docker-compose.notary.yml  harbor_1_1_0_template  harbor.v1.2.2.tar.gz  LICENSE  prepare
docker-compose.clair.yml  docker-compose.yml         harbor.cfg             install.sh            NOTICE   upgrade

查看docker-compose.yml该文件,可以发现有7个容器编排

3.5 执行脚本安装并查看容器

[root@Harbor harbor]# ./install.sh   ##执行安装
[root@Harbor harbor]# docker ps -a    ##查看容器
CONTAINER ID        IMAGE                              COMMAND                  CREATED             STATUS              PORTS                                                              NAMES
f238393a9460        vmware/nginx-photon:1.11.13        "nginx -g 'daemon of…"   1 minutes ago       Up 1 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
dce7070b896b        vmware/harbor-jobservice:v1.2.2    "/harbor/harbor_jobs…"   1 minutes ago       Up 1 minutes                                                                           harbor-jobservice
1c7d3a91eed7        vmware/harbor-ui:v1.2.2            "/harbor/harbor_ui"      3 minutes ago       Up 3 minutes                                                                           harbor-ui
2ed04682f845        vmware/harbor-adminserver:v1.2.2   "/harbor/harbor_admi…"   3 minutes ago       Up 3 minutes                                                                           harbor-adminserver
a1f09c86820b        vmware/harbor-db:v1.2.2            "docker-entrypoint.s…"   3 minutes ago       Up 3 minutes        3306/tcp                                                           harbor-db
28bc92da77d8        vmware/registry:2.6.2-photon       "/entrypoint.sh serv…"   3 minutes ago       Up 3 minutes        5000/tcp                                                           registry
602b5bf23725        vmware/harbor-log:v1.2.2           "/bin/sh -c 'crond &…"   3 minutes ago       Up 3 minutes        127.0.0.1:1514->514/tcp                                            harbor-log

生成7个容器

3.6 远端登录harbor镜像仓库

此时在远端登录harbor镜像仓库的时候,拒绝连接。出现这问题的原因 Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以上错误。

1.在远端修改配置文件docker.service

[root@client ~]# vim /usr/lib/systemd/system/docker.service
在第14行中间插入--insecure-registry 20.0.0.40
14 ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 20.0.0.40  --containerd=/run/containerd/containerd.sock

:wq

2.重新加载docker服务

[root@client ~]# systemctl daemon-reload 
[root@client ~]# systemctl restart docker

3.登录harbor镜像仓库

docker login -u admin -p Harbor12345 http://20.0.0.100

ps:密码可在/usr/local/harbor/harbor.cfg文件中harbor_admin_password处进行修改

4.给本地镜像nginx:latest进行打标签

docker tag nginx:latest 20.0.0.100/jojo/nginx

5.上传镜像

docker push 20.0.0.100/jojo/nginx

3.7 harbor日常操作管理

3.7.1 登录harbor,网址20.0.0.10

默认用户admin
密码为Harbor12345
在这里插入图片描述

3.7.2 新建项目

在这里插入图片描述

3.7.3 上传镜像测试

[root@client yum.repos.d]# docker tag nginx:latest 20.0.0.10/jojo/nginx
[root@client yum.repos.d]# docker push 20.0.0.10/jojo/nginx
The push refers to repository [20.0.0.10/jojo/nginx]
b9e73ac5343e: Pushed 
5887d03dfc3d: Pushed 
e3a971c30b12: Pushed 
32048dd980c7: Pushed 
f5600c6330da: Pushed 
latest: digest: sha256:bb84ff0786cd1dbde780d84f6bf76bfdef36fe8ffa658f7f5c48e39363b4d500 size: 1362

在这里插入图片描述

3.7.4 创建用户

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值