教你如何用Harbor 私有镜像仓库搭建

    一、Harbor是什么? 

Docker有个形象的比喻叫集装箱,kubernetes是舵手,而Harbor是港湾,其实是用来保存容器镜像的仓库,企业使用docker、kubernetes时,一般都需要个私有镜像仓库的,Harbor就是其中的佼佼者。官方的解释:Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。

    二、Harbor的架构    

harbor的整体架构还是很清晰的,下面简单介绍一下,下图展示harbor主要的功能组件和信息流向。

Proxy: Harbor的registry、UI、token services等组件,都处在一个反向代理后边。该代理将来自浏览器、docker clients的请求转发到后端服务上。

Registry: 负责存储Docker镜像,以及处理Docker push/pull请求。因为Harbor强制要求对镜像的访问做权限控制, 在每一次push/pull请求时,Registry会强制要求客户端从token service那里获得一个有效的token。

Core services: Harbor的核心功能,主要包括如下3个服务:

UI: 作为Registry Webhook, 以图像用户界面的方式辅助用户管理镜像。1) WebHook是在registry中配置的一种机制, 当registry中镜像发生改变时,就可以通知到Harbor的webhook endpoint。Harbor使用webhook来更新日志、初始化同步job等。2) Token service会根据该用户在一个工程中的角色,为每一次的push/pull请求分配对应的token。假如相应的请求并没有包含token的话,registry会将该请求重定向到token service。3) Database 用于存放工程元数据、用户数据、角色数据、同步策略以及镜像元数据。

Job services: 主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。

Log: 负责收集其他模块的日志到一个地方

   三、Harbor使用    

1、安装 docker

1.1 安装依赖
## 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
1.2 添加阿里云yum源
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.3 更新yum源及安装Docker-ce
yum update -y  && yum install -y docker-ce
1.4 编写daemon.json配置文件
mkdir /etc/docker ## 创建 /etc/docker 目录
## 配置 daemon. insecure-registries 是后续用来访问 harbor 私有仓库的, 表示可信任的仓库地址
## 192.168.3.155:9999为harbor私服的地址和端口
cat > /etc/docker/daemon.json <<eof< span="">
{
    "exec-opts": [
        "native.cgroupdriver=systemd"
    ], 
    "log-driver": "json-file", 
    "registry-mirrors": [
        "https://tosnxdv7.mirror.aliyuncs.com"
    ], 
    "log-opts": {
        "max-size": "100m"
    }, 
    "insecure-registries": [
        "192.168.3.193"
    ]
}
EOF</eof<>
1.5 重启docker服务
systemctl daemon-reload && systemctl restart docker && systemctl enable docker

2、安装 docker-compose

wget https://linux-soft-ware.oss-cn-shenzhen.aliyuncs.com/docker-compose
chmod +x docker-compose
mv docker-compose /usr/local/bin

3、安装 Harbor

3.1 下载Harbor
wget https://github.com/goharbor/harbor/releases/download/v2.1.4/harbor-offline-installer-v2.1.4.tgz
3.2 解压
## 创建解压目录
mkdir /usr/app
## 解压到指定目录
tar xf harbor-offline-installer-v2.1.4.tgz  -C /usr/app
3.3 编辑harbor.yml配置文件
vi /usr/app/harbor

cp harbor.yml.tmpl harbor.yml

vim /usr/app/harbor.yml

hostname: 192.168.3.193 # 修改为自己的IP地址或者域名
# http related config
## 删除下面的https配置
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 80
# 修改登录Harbor的web端密码(用于管理界面的登录)
harbor_admin_password: 123456

4、安装 harbor

4.1 安装Harbor
./harbor/install.sh
4.2 访问 harbor

输入 https://192.168.3.193, 输入 admin/12345

5、测试能否登陆私有仓库

5.1 在客户端编辑Docker配置文件
vi /etc/docker/daemon.json

### 编辑内容如下:
}
    "exec-opts": [
        "native.cgroupdriver=systemd"
    ],
    "log-driver": "json-file",
    "registry-mirrors": [
        "https://tosnxdv7.mirror.aliyuncs.com"
    ],
    "log-opts": {
        "max-size": "100m"
    },
    ## 添加Harbor仓库的地址(必须添加)
    "insecure-registries": [
        "192.168.3.193"
    ]
}
5.2 加载配置文件重启Docker服务
systemctl daemon-reload && systemctl restart docker
5.3 使用docker login测下,是否成功
docker login 192.168.3.193
Username: admin
Password: 123456

6、测试镜像上传和下载

6.1 docker tag打标签
docker tag nginx:latest 192.168.3.193/test/nginx:V2
6.2 docker push 推送镜像到仓库
 docker push 192.168.3.193/test/nginx:V2
6.3 docker pull 拉取镜像
docker pull 192.168.3.193/test/nginx:V2
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值