Harbor概述

Harbor是由VMware公司开源的容器镜像仓库。事实上,Harbor是在docker registry上进行企业级扩展,从而获得了更加广泛的应用。

官网:https://goharbor.io/

GitHub:https://github.com/goharbor/harbor

部署先决条件

服务器硬件配置

  • 最低要求:CPU2核、内存4G、硬盘40GB
  • 推荐:CPU4核、内存8G、硬盘160GB

软件

  • Docker CE 17.06版本+
  • Docker Compose 1.18版本+

Harbor安装方式

  • 在线安装:从Docker Hub下载Harbor相关镜像。
  • 离线安装:安装包包含部署的相关镜像,安装包很大。

Harbor部署

  • docker version:Docker version 20.10.18, build b40c2f6
  • docker-compose version: Docker Compose version v2.11.2
  • harbor version: v2.6.0

本文采用离线安装的方式,harbor的下载地址:https://github.com/goharbor/harbor/releases

下载好并上传至服务器中,安装具体流程如下

[root@harbor ~]# tar xvf harbor-offline-installer-v2.6.0.tgz
harbor/harbor.v2.6.0.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
[root@harbor ~]# cd harbor
[root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
# 修改hostname字段(域名),注释https相关配置,修改harbor_admin_password字段(初始密码)
[root@harbor harbor]# vim harbor.yml
hostname: harbor.host.com
harbor_admin_password: Harbor12345
# 初始化环境(导入镜像)
[root@harbor harbor]# ./prepare
# 安装
[root@harbor harbor]# ./install.sh

访问服务器80端口即可,默认用户为admin,密码为harbor.yml里面的harbor_admin_password设定的值

Harbor基本使用

添加信任仓库

如果harbor搭建禁用掉了https,那么就要做一下操作:

编辑/etc/docker/daemon.json,添加以下配置

{

"insecure-registries": ["192.16.1.3"],

}

后面是服务器的ip或者域名,保存重启,使用下面命令检查

[root@harbor harbor]# docker info |grep -A1 Insecure
 Insecure Registries:
  192.16.1.3

注意:基本使用实在客户端用的,如果在服务端使用并且重启docker之后harbor的网页掉了则需要再次进入harbor目录使用docker-compose启动harbor

上传镜像

在上传镜像之前需要有上传镜像的权限,我们直接使用admin来上传镜像,使用下面命令来登录harbor

[root@harbor harbor]# docker login 192.16.1.3
Username: admin
Password:
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

上传镜像到对应仓库的时候需要修改tag,tag格式为“仓库域名或ip/镜像位置/镜像名称:版本号”

例如hello-world这个镜像,上传到刚才搭建的镜像仓库方法如下

[root@harbor harbor]# docker tag hello-world:latest 192.16.1.3/library/my-hello-world:v1.0
[root@harbor harbor]# docker push 192.16.1.3/library/my-hello-world:v1.0
The push refers to repository [192.16.1.3/library/my-hello-world]
e07ee1baac5f: Pushed
v1.0: digest: sha256:f54a58bc1aac5ea1a25d796ae155dc228b3f0e11d046ae276b39c4bf2f13d8c4 size: 525

下载镜像

下载镜像时只需要在pull的时候输好镜像全称即可,例如

[root@harbor harbor]# docker pull 192.16.1.3/library/my-hello-world:v1.0
v1.0: Pulling from library/my-hello-world
Digest: sha256:f54a58bc1aac5ea1a25d796ae155dc228b3f0e11d046ae276b39c4bf2f13d8c4
Status: Downloaded newer image for 192.16.1.3/library/my-hello-world:v1.0
192.16.1.3/library/my-hello-world:v1.0
最后修改:2022 年 10 月 08 日
如果觉得我的文章对你有用,请随意赞赏