harbor镜像仓库的部署、docker-compose语法

harbor镜像仓库的部署、docker-compose语法

harbor镜像仓库的部署

Harbor

无论是使用Docker-distribution去自建仓库,还是通过官方镜像跑容器的方式去自建仓库,通过前面的演示我们可以发现其是非常的简陋的,还不如直接使用官方的Docker Hub去管理镜像来得方便,至少官方的Docker Hub能够通过web界面来管理镜像,还能在web界面执行搜索,还能基于Dockerfile利用Webhooks和Automated Builds实现自动构建镜像的功能,用户不需要在本地执行docker build,而是把所有build上下文的文件作为一个仓库推送到github上,让Docker Hub可以从github上去pull这些文件来完成自动构建。

但无论官方的Docker Hub有多强大,它毕竟是在国外,所以速度是最大的瓶颈,我们很多时候是不可能去考虑使用官方的仓库的,但是上面说的两种自建仓库方式又十分简陋,不便管理,所以后来就出现了一个被 CNCF 组织青睐的项目,其名为Harbor。

Harbor简介

Harbor是由VMWare在Docker Registry的基础之上进行了二次封装,加进去了很多额外程序,而且提供了一个非常漂亮的web界面。
Project Harbor 是一个开源的受信任的云原生注册表项目,用于存储、签名和扫描上下文。

Harbor 通过添加用户通常需要的功能(如安全性、身份和管理)来扩展开源 Docker 发行版。

Harbor 支持用户管理、访问控制、活动监控、实例间复制等高级功能。

Harbor的功能

  • 多租户内容签名和验证
  • 安全和漏洞分析
  • 审计日志
  • 身份集成和基于角色的访问控制
  • 实例间镜像复制
  • 可扩展的 API 和图形用户界面
  • 国际化(目前为英文和中文)

Docker compose

Harbor在物理机上部署是非常难的,而为了简化Harbor的应用,Harbor官方直接把Harbor做成了在容器中运行的应用,而且这个容器在Harbor中依赖类似redis、mysql、pgsql等很多存储系统,所以它需要编排很多容器协同起来工作,因此VMWare Harbor在部署和使用时,需要借助于Docker的单机编排工具(Docker compose)来实现
Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。 借助 Compose,您可以使用 YAML 文件来配置应用程序的服务。 然后,使用单个命令,从配置中创建并启动所有服务。
Docker Compose官方文档

Harbor部署

Harbor官方文档

//安装compose
[root@localhost ~]# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@localhost ~]# ls /usr/local/bin/
docker-compose
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose 

//安装harbor
[root@registry src]# ls
harbor-online-installer-v2.3.5.tgz
[root@registry src]# tar xf harbor-online-installer-v2.3.5.tgz -C /usr/local/
[root@registry src]# cd /usr/local/
[root@registry local]# ls
bin  games   include  lib64    nginx  share
etc  harbor  lib      libexec  sbin   src
[root@registry harbor]# ls
common.sh   harbor.yml.tmpl  LICENSE
harbor.yml  install.sh       prepare
[root@registry harbor]# cp harbor.yml.tmpl harbor.yml
[root@registry harbor]# vim harbor.yml
hostname: registry.example.com
[root@registry harbor]# cat /etc/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.72.145 registry.example.com
[root@localhost harbor]# ./install.sh 
.............
Creating harbor-log ... done
Creating harbor-db     ... done
Creating registryctl   ... done
Creating registry      ... done
Creating redis         ... done
Creating harbor-portal ... done
Creating harbor-core   ... done
Creating harbor-jobservice ... done
Creating nginx             ... done
✔ ----Harbor has been installed and started successfully.----
[root@localhost harbor]# ls
common              harbor.yml       LICENSE
common.sh           harbor.yml.tmpl  prepare
docker-compose.yml  install.sh
[root@localhost harbor]# ss -antl
State    Recv-Q   Send-Q       Local Address:Port             Peer Address:Port         Process         
LISTEN   0        128              127.0.0.1:1514                  0.0.0.0:*                            
LISTEN   0        128                0.0.0.0:80                    0.0.0.0:*                            
LISTEN   0        128                0.0.0.0:22                    0.0.0.0:*                            
LISTEN   0        128                   [::]:80                       [::]:*                            
LISTEN   0        128                   [::]:22                       [::]:*    
[root@localhost harbor]# docker ps 
CONTAINER ID   IMAGE                                COMMAND                  CREATED         STATUS                   PORTS                                   NAMES
28057d500107   goharbor/nginx-photon:v2.3.5         "nginx -g 'daemon of…"   4 minutes ago   Up 4 minutes (healthy)   0.0.0.0:80->8080/tcp, :::80->8080/tcp   nginx
449ca5719e67   goharbor/harbor-jobservice:v2.3.5    "/harbor/entrypoint.…"   4 minutes ago   Up 4 minutes (healthy)                                           harbor-jobservice
185a2c5b9dd8   goharbor/harbor-core:v2.3.5          "/harbor/entrypoint.…"   4 minutes ago   Up 4 minutes (healthy)                                           harbor-core
c1cd1668e0a2   goharbor/harbor-portal:v2.3.5        "nginx -g 'daemon of…"   4 minutes ago   Up 4 minutes (healthy)                                           harbor-portal
8ca09842a193   goharbor/registry-photon:v2.3.5      "/home/harbor/entryp…"   4 minutes ago   Up 4 minutes (healthy)                                           registry
f0e9e4dc21ca   goharbor/redis-photon:v2.3.5         "redis-server /etc/r…"   4 minutes ago   Up 4 minutes (healthy)                                           redis
c2ede14c8504   goharbor/harbor-registryctl:v2.3.5   "/home/harbor/start.…"   4 minutes ago   Up 4 minutes (healthy)                                           registryctl
c53a4d3be264   goharbor/harbor-db:v2.3.5            "/docker-entrypoint.…"   4 minutes ago   Up 4 minutes (healthy)                                           harbor-db
28574235cab6   goharbor/harbor-log:v2.3.5           "/bin/sh -c /usr/loc…"   4 minutes ago   Up 4 minutes (healthy)   127.0.0.1:1514->10514/tcp               harbo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值