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

 

目录

1、安装 docker

2、安装 docker-compose

3、安装 Harbor

4、安装 harbor

6、测试镜像上传和下载


图片

    一、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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值