docker 分布式仓库harbor

docker 分布式仓库harbor

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

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

本次使用当前 harbor 稳定版 为 harbor-offline-installer-v1.7.6.tgz

下载地址:https://github.com/vmware/harbor/releases

安装文档: https://github.com/goharbor/harbor/blob/master/docs/install-config/_index.md

2.1 解决依赖环境

需要安装docker 和docker-compose

1.安装docker
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update


apt install docker-ce=5:18.09.9~3-0~ubuntu-bionic  docker-ce-cli=5:18.09.9~3-0~ubuntu-bionic -y


2.安装docker-compasose

可以使用 apt 安装

root@Z4:~# apt-cache madison  docker-compose
docker-compose |   1.17.1-2 | http://mirrors.aliyun.com/ubuntu bionic/universe amd64 Packages
docker-compose |   1.17.1-2 | http://mirrors.aliyun.com/ubuntu bionic/universe i386 Packages
docker-compose |   1.17.1-2 | http://mirrors.aliyun.com/ubuntu bionic/universe Sources
root@Z4:~# 
root@Z4:~# apt install docker-compose

pip 安装

root@z3:~# apt  install python-pip
root@z3:~# pip install --upgrade pip
root@z3:~# pip  install docker-compose
2.2 并配置harbor启动

下载安装包

root@z3:/usr/local/src# wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.6.tgz

root@z3:/usr/local/src# tar xvf harbor-offline-installer-v1.7.6.tgz 


root@z3:/usr/local/src# ln -sv /usr/local/src/harbor  /usr/local/harbor 
'/usr/local/harbor' -> '/usr/local/src/harbor'

修改配置文件关键项

root@z3:/usr/local/harbor# vim harbor.cfg 

#写ip地址或域名都行
hostname =192.168.1.103   

harbor_admin_password =12345

安装

root@z3:/usr/local/harbor# ./prepare
root@z3:/usr/local/harbor# ./install.sh 

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://192.168.1.103. 
For more details, please visit https://github.com/goharbor/harbor .

验证: 访问 http://192.168.1.103 输入密码即可登录(默认账号是admin ,密码是配置文件自定义的那个)

2.3 .harbor后期 修改配置

后期修改配置 ,如果 harbor 运行一段时间之后需要更改配置,则步骤如下:

  1. 进入到harbor安装目录
root@z3:/usr/local/harbor# pwd
/usr/local/harbor
  1. 停止docker-compose 启动和harbor相关的容器
root@z3:/usr/local/harbor# docker-compose stop
  1. 编辑 harbor.cfg 进行相关配置
root@z3:/usr/local/harbor# vim harbor.cfg 
  1. 更新配置,会自动清理之前的生成配置文件(密钥证书之类的)
root@z3:/usr/local/harbor# ./prepare
  1. 启动 harbor 服务
root@z3:/usr/local/harbor# docker-compose start
3. 用harbor 和上传镜像
3.1 构建harbor 项目

在项目中点击新建项目

mark

填入项目名称后,项目一定得选择公开否则就连拉取镜像也要登录仓库,不方便

mark

3.2 给旧镜像打标签
root@z2:~# docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
ubuntu                           18.04               c3c304cb4f22        5 weeks ago         64.2MB
root@z2:~# docker tag ubuntu:18.04 192.168.1.103/baseimages/ubuntu:1804

格式为 : 仓库域名或地址/项目名称/镜像名称:镜像版本

3.3 上传镜像
root@z2:~# docker push 192.168.1.103/baseimages/ubuntu:1804
The push refers to repository [192.168.1.103/baseimages/ubuntu]
Get https://192.168.1.103/v2/: dial tcp 192.168.1.103:443: connect: connection refused

直接上传是会被拒绝的, 因为上传需要权限和添加非安全仓库

设置非安全仓库并且重启

root@z2:~# vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://n0kig9se.mirror.aliyuncs.com"],
  "insecure-registries":["192.168.1.103"]
} 
root@z2:~# systemctl restart docker

再试 ,发现还是不行

root@z2:~# docker push 192.168.1.103/baseimages/ubuntu:1804
The push refers to repository [192.168.1.103/baseimages/ubuntu]
28ba7458d04b: Preparing 
838a37a24627: Preparing 
a6ebef4a95c3: Preparing 
b7f7d2967507: Preparing 
denied: requested access to the resource is denied

登录仓库验证

root@z2:~# docker login 192.168.1.103

在试一下就行了

3.4 下载镜像

只需要添加非安全仓库,重启docker 就行

root@z1:~# vim  /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://n0kig8se.mirror.aliyuncs.com"],
  "insecure-registries":["192.168.1.103"]
} 
root@z1:~# docker pull 192.168.1.103/baseimages/ubuntu:1804
1804: Pulling from baseimages/ubuntu
23884877105a: Pull complete 
bc38caa0f5b9: Pull complete 
2910811b6c42: Pull complete 
36505266dcc6: Pull complete 
Digest: sha256:b58746c8a89938b8c9f5b77de3b8cf1fe78210c696ab03a1442e235eea65d84f
4. harbor 的复制管理

harbor 可以实现主从同步,提高服务的可用性。

首先准备2台服务器。192.168.1.103、192.168.1.104。

下面实现单向复制。192.168.1.104 为从 , 复制192.168.1.103/baseimages 下的项目内容

4.1 新建复制目标

在 系统管理/仓库管理 页面下点击仓库管理 新建目标

mark

注意不要勾验证远程证书。

mark

填完信息之后可以点击 测试连接书的方法,测试填的信息是否正确

4.2 在复制管理中新建规则
mark
4.3 验证复制结果

在其他机器随便push一个镜像,在104的机器下也会有相同的镜像

注意:

  • harbor在主从同步时,从harbor会自动修改仓库地址 。例如会自动把 192.168.1.103/baseimages/alpine:v1改为192.168.1.104/baseimages/alpine:v1 。

  • 若同步失败,可以查看日志找出原因

mark
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值