@Harbor镜像仓库安装及使用

文章目录

    • Harbor
    • 一、Harbor
      • 1、harbor简介
      • 2、harbor的概述
    • 二、Harbor安装
      • 1、安装Docker
      • 2、安装docker-compose
      • 3、安装Harbor
    • 三、使用harbor
      • 1、Harbor创建用户
      • 2、Harbor创建项目
      • 3、给私有项目分配用户
      • 4、使用新用户登录Harbor
      • 5、镜像上传到Harbor

Harbor

一、Harbor

Harbor(港口,港湾)是一个用于存储和分发Docker镜像的企业级Registry服务器

@Harbor镜像仓库安装及使用_第1张图片

Docker官方提供的镜像仓库Registry

1、harbor简介

Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能

2、harbor的概述

#Harbor相对于Registry服务器的优势:

1》提供分层传输机制,优化网络传输 Docker镜像是是分层的,而如果每次传输都使用全量文件(所以用FTP的方式并不适合),显然不经济。必须提供识别分层传输的机制,以层的UUID为标识,确定传输的对象。


2》 提供WEB界面,优化用户体验 只用镜像的名字来进行上传下载显然很不方便,需要有一个用户界面可以支持登陆、搜索功能,包括区分公有、私有镜像


3.》支持水平扩展集群 当有用户对镜像的上传下载操作集中在某服务器,需要对相应的访问压力作分解


4》良好的安全机制 企业中的开发团队有很多不同的职位,对于不同的职位人员,分配不同的权限,
具有更好的安全性

二、Harbor安装

Harbor需要在Docker与Docker-compose组件上运行

1、安装Docker

【docker安装详解】

2、安装docker-compose

【docker-compose安装详解】

# 下载安装包
[root@docker ~]# sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose 
[root@docker ~]# sudo chmod +x /usr/local/bin/docker-compose






#给docker-compose添加执行权限
[root@docker ~]# ll /usr/local/bin/ | grep docker-compose 
-rw-r--r-- 1 root root 12218968 817 22:53 docker-compose
[root@docker ~]# sudo chmod +x /usr/local/bin/docker-compose






#查看docker-compose是否安装成功	
[root@docker ~]# docker-compose --version  
docker-compose version 1.27.4, build 40524192

3、安装Harbor

下载Harbor的压缩包(版本为:v1.9.2)

【安装包地址】

#解压harbor包
[root@docker ~]# ll -h
总用量 601M
-rw-r--r--  1 root root 601M 817 23:13 harbor-offline-installer-v2.3.1-1.tgz
[root@docker ~]# tar xf harbor-offline-installer-v2.3.1-1.tgz 
ll -h 
总用量 601M
drwxr-xr-x  2 root root  122 817 23:16 harbor






#创建harbor工作目录
[root@docker ~]# mkdir /opt/harbor
[root@docker ~]# mv harbor/* /opt/harbor





#配置文件修改:主机地址及端口
[root@docker ~]# cd /opt/harbor
[root@docker ~]# vim harbor.yml
#修改hostname和port
hostname: 192.168.15.57
port: 88






#安装harbor
(当前路径执行 :/opt/harbor)
[root@docker /opt/harbor]# ./prepare 
prepare base dir is set to /opt/harbor
Unable to find image 'goharbor/prepare:v2.3.1' locally
v2.3.1: Pulling from goharbor/prepare
2f0af7491ce3: Pull complete 
7dd5e4229ec6: Pull complete 
cda5f8f8a1f8: Pull complete 
3404538ae5c9: Pull complete 
991d1829b2c3: Pull complete 
73acb2531ec7: Pull complete 
52707cc5b93e: Pull complete 
3104331c643d: Pull complete 
Digest: sha256:ad8c463ad05e7c16c9ffd518704ce32e5361effa18c467317b87446aac0199f0
Status: Downloaded newer image for goharbor/prepare:v2.3.1

[root@docker /opt/harbor]# ./install.sh

[Step 0]: checking if docker is installed ...

Note: docker version: 20.10.7

[Step 1]: checking docker-compose is installed ...

Note: docker-compose version: 1.27.4

[Step 2]: loading Harbor images ...
.........
.....
[Step 5]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating redis         ... done
Creating registry      ... done
Creating harbor-db     ... done
Creating registryctl   ... done
Creating harbor-core   ... done
Creating harbor-jobservice ... done
Creating nginx             ... done
✔ ----Harbor has been installed and started successfully.----






#启动Harbor
docker-compose up -d   启动
docker-compose stop    停止
docker-compose restart 重新启动

[root@docker /opt/harbor]# docker-compose up -d  #启动harbor
harbor-log is up-to-date
registry is up-to-date
Recreating registryctl ... 
harbor-db is up-to-date
redis is up-to-date
Recreating registryctl ... done
Recreating harbor-core ... done
Recreating harbor-jobservice ... 
Recreating harbor-jobservice ... done





#测试访问Harbor
http://192.168.15.57:88

登录harbor
默认账户密码:admin:Harbor12345

@Harbor镜像仓库安装及使用_第2张图片
@Harbor镜像仓库安装及使用_第3张图片

三、使用harbor

1、Harbor创建用户

创建用户

@Harbor镜像仓库安装及使用_第4张图片
@Harbor镜像仓库安装及使用_第5张图片

2、Harbor创建项目

@Harbor镜像仓库安装及使用_第6张图片@Harbor镜像仓库安装及使用_第7张图片

3、给私有项目分配用户

进入test项目 -> 成员

@Harbor镜像仓库安装及使用_第8张图片

角色 权限说明
访客 对于指定项目拥有只读权限
开发人员 对于指定项目拥有读写权限
维护人员 对于指定项目拥有读写权限,创建 Webhooks
项目管理员 除了读写权限,同时拥有用户管理/镜像扫描等管理权限

@Harbor镜像仓库安装及使用_第9张图片
@Harbor镜像仓库安装及使用_第10张图片

4、使用新用户登录Harbor

@Harbor镜像仓库安装及使用_第11张图片

5、镜像上传到Harbor

#登录harbor仓库(错误请跳过,下面有对策)
[root@docker /opt/harbor]# docker login -u hzl -p Hzl@20144 192.168.15.57:88
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded





#打标签
[root@docker /opt/harbor]# docker tag nginx:latest 192.168.15.57:88/test/nginx:v1






#上传镜像
[root@docker /opt/harbor]# docker push 192.168.15.57:88/test/nginx:v1 
The push refers to repository [192.168.15.57:88/test/nginx]
e3135447ca3e: Pushed 
b85734705991: Pushed 
988d9a3509bb: Pushed 
59b01b87c9e7: Pushed 
7c0b223167b9: Pushed 
814bff734324: Pushed 
v1: digest: sha256:3f13b4376446cf92b0cb9a5c46ba75d57c41f627c4edb8b635fa47386ea29e20 size: 1570

错误问题:http: server gave HTTP response to HTTPS client

以上报错,是因为Docker没有把Harbor加入信任列表中,把Harbor地址加入到Docker信任列表即可

#增加配置文件即可(解决方式)
[root@docker /opt/harbor]# cat /etc/docker/daemon.json
{ "insecure-registries":["192.168.15.57:88"] }




#修改好后重启docker服务
[root@docker /opt/harbor]# systemctl daemon-reload 
[root@docker /opt/harbor]# systemctl restart docker

denied: requested access to the resource is denied

@Harbor镜像仓库安装及使用_第12张图片

你可能感兴趣的:(DevOps,docker,harbor,docker-compose)