构建Harbor私有镜像仓库

harbor仓库

作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等

  • 基于角色的访问控制 - 用户与 Docker 镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

  • 镜像复制 - 镜像可以在多个 Registry 实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。

  • 图形化用户界面 - 用户可以通过浏览器来浏览,检索当前 Docker 镜像仓库,管理项目和命名空间。

  • AD/LDAP 支持 - Harbor 可以集成企业内部已有的 AD/LDAP,用于鉴权认证管理。

  • 审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

  • 国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。

  • RESTful API - RESTful API 提供给管理员对于 Harbor 更多的操控, 使得与其它管理软件集成变得更容易。

  • 部署简单 - 提供在线和离线两种安装工具, 也可以安装到 vSphere 平台(OVA 方式)虚拟设备。

Harbor官方网站

https://goharbor.io/ 点我前往

Harbor官方Github仓库

https://github.com/goharbor/harbor 点我前往

环境准备

  • 一台VPS服务器(这里我用虚拟机演示)

    IP 192.168.60.131
    Centos 7
    

    安装一些必要的组件

    [root@harbor ~]# yum install -y vim net-tools wget ntpdate
    

    时间同步

    [root@harbor ~]# ntpdate ntp.aliyun.com
    

    关闭防火墙和selinux(云服务器跳过这一步,放开安全组就可以了)

    systemctl stop firewalld && systemctl disable firewalld
    setenforce 0
    

安装docker

  1. 卸载旧版本

    yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
    
  2. 配置镜像的仓库(根据地区选择)

    • 默认是国外镜像

      yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
      
    • 国内使用阿里云镜像

      yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
  3. 需要的安装包

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  4. 查看docker版本

    yum list docker-ce --showduplicates
    
  5. 安装最新版docker

    yum install -y docker-ce
    
  6. 启动docker服务

    systemctl start docker && systemctl enable docker
    
  7. 查看docker版本

    [root@harbor ~]# docker -v
    	Docker version 24.0.7, build afdd53b
    

配置阿里云镜像加速器

首先登录阿里云,找到-容器镜像服务-镜像工具-镜像加速器

每个人的都不一样,建议用自己的

根据下面的文档创建

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://gnp9adaq.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker

安装docker-compose

  • 官方github仓库

    https://github.com/docker/compose 点我前往

  • 下载最新版(我这里是2.23.3)

    [root@harbor bin]# wget https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-`uname -s`-`uname -m`
    
    [root@harbor ~]# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
    
  • 给予执行权

    [root@harbor ~]# chmod +x /usr/local/bin/docker-compose
    

安装harbor仓库

  1. 到官网找到安装包,有在线和离线版本,根据自己的需求选择

    https://github.com/goharbor/harbor/releases 点我前往

  2. 下载到服务器(我用的是在线安装)

    [root@harbor ~]# wget https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-online-installer-v2.10.0.tgz
    
  3. 查看并解压

    [root@harbor ~]# ls
    anaconda-ks.cfg  harbor-online-installer-v2.10.0.tgz
    
    [root@harbor ~]# tar xvf harbor-online-installer-v2.10.0.tgz 
    harbor/prepare
    harbor/LICENSE
    harbor/install.sh
    harbor/common.sh
    harbor/harbor.yml.tmpl
    
    [root@harbor ~]# ls
    anaconda-ks.cfg  harbor  harbor-online-installer-v2.10.0.tgz
    

    可以看出多了一个harbor目录

  4. 进入harbor目录

    [root@harbor ~]# cd harbor
    [root@harbor harbor]# ls
    common.sh  harbor.yml.tmpl  install.sh  LICENSE  prepare
    
  5. 修改配置文件

    [root@harbor harbor]# cp harbor.yml.tmpl harbor.yml
    

    保留配置文件是怕之后出问题

    [root@harbor harbor]# vim harbor.yml
    

    harbor.png

    # The default data volume
    data_volume: /data
    把这个改为
    data_volume: ./data
    这样方便数据迁移
    

    保存退出

  6. 安装harbor

    [root@harbor harbor]# ./prepare 
    

    稍等一会后

    [root@harbor harbor]# ls
    common     data                harbor.yml       install.sh  prepare
    common.sh  docker-compose.yml  harbor.yml.tmpl  LICENSE
    

    发现出现了docker-compose.yml文件

    [root@harbor harbor]# docker-compose up -d
    

登录harbor

打开浏览器输入IP加端口或域名,然后用

用户名:admin

密码:Harbor12345

登录即可