Linux 搭建 Docker 私有化仓库 Harbor 教程

一、Harbor 简介

Harbor 是一个开源的企业级 Docker Registry 服务,提供了镜像管理、访问控制、身份验证等功能,适用于容器化环境下的镜像存储管理。它最初由 VMware 公司开发,2017 年开源,为企业容器化应用的部署和管理提供了强大的支持。

二、环境准备

在开始搭建 Harbor 之前,请确保您的服务器满足以下要求:

  • 操作系统:CentOS 7 或更高版本、Ubuntu 16.04 等主流 Linux 发行版。
  • Docker Engine:20.10.0 或更高版本。
  • Docker Compose:1.18.0 或更高版本。
  • 硬件配置
    • CPU:最少 2 核。
    • 内存:最少 4GB。
    • 硬盘:最少 40GB。

三、安装 Docker 和 Docker Compose

(一)安装 Docker

  1. 安装必要工具:

    Shell复制

    shell 复制代码
    yum install -y yum-utils device-mapper-persistent-data lvm2
  2. 添加 Docker 阿里云源(可选,可更换为其他源):

    Shell复制

    shell 复制代码
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. 安装 Docker:

    Shell复制

    shell 复制代码
    yum install -y docker-ce docker-ce-cli containerd.io
  4. 配置 Docker 镜像加速(可选):

    Shell复制

    shell 复制代码
    mkdir -p /etc/docker
    cat > /etc/docker/daemon.json <<EOF
    {
      "registry-mirrors": [
        "https://registry.cn-hangzhou.aliyuncs.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://hub-mirror.c.163.com"
      ],
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m"
      },
      "storage-driver": "overlay2"
    }
    EOF
  5. 启动 Docker:

    Shell复制

    shell 复制代码
    systemctl daemon-reload
    systemctl enable docker
    systemctl start docker

(二)安装 Docker Compose

  1. 下载 Docker Compose 二进制文件(可更换为其他版本):

    Shell复制

    shell 复制代码
    wget https://mirror.ghproxy.com/https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -O /usr/local/bin/docker-compose
  2. 添加可执行权限:

    Shell复制

    shell 复制代码
    chmod +x /usr/local/bin/docker-compose
  3. 验证安装:

    Shell复制

    shell 复制代码
    docker-compose --version

    如果上述方法不工作,可以尝试使用 yum 安装:

    Shell复制

    shell 复制代码
    yum install -y docker-compose-plugin

    然后使用:

    Shell复制

    shell 复制代码
    docker compose version
    ```[^5^]

四、下载并安装 Harbor

(一)下载 Harbor

  1. 通过 wget 命令下载(以 v2.12.1 版本为例):

    Shell复制

    shell 复制代码
    wget https://github.com/goharbor/harbor/releases/download/v2.12.1/harbor-offline-installer-v2.12.1.tgz
  2. 也可以通过 GitHub 页面下载:

(二)解压并修改配置文件

  1. 解压文件:

    Shell复制

    shell 复制代码
    tar -zxvf harbor-offline-installer-v2.12.1.tgz
  2. 进入解压后的 harbor 文件夹:

    Shell复制

    shell 复制代码
    cd harbor
  3. 复制 harbor.yml.tmpl 文件并重命名为 harbor.yml

    Shell复制

    shell 复制代码
    cp harbor.yml.tmpl harbor.yml
  4. 修改 harbor.yml 配置文件,需要设置 hostname、端口、数据库密码等。例如:

    yaml复制

    yaml 复制代码
    # 修改hostname的值,如果没有域名就使用本机IP地址
    hostname: 192.168.1.100
    # 配置启动端口号
    http:
      port: 5000
    # Remember Change the admin password from UI after launching Harbor.
    harbor_admin_password: AdminHarbor12345

    根据实际情况进行其他相关配置。

五、启动 Harbor

  1. 执行安装脚本:

    Shell复制

    shell 复制代码
    ./install.sh
  2. 使用 docker-compose 启动 Harbor:

    Shell复制

    shell 复制代码
    docker-compose up -d
  3. 查看 Harbor 服务状态:

    Shell复制

    shell 复制代码
    docker-compose ps

    确保所有服务的状态为 healthy

六、配置 Docker 客户端信任 Harbor 仓库

为了让 Docker 客户端能够正常访问 Harbor,需要配置 Docker 的信任仓库列表:

  1. 添加信任仓库:

    Shell复制

    shell 复制代码
    sudo vi /etc/docker/daemon.json

    在文件中添加以下内容(以 192.168.1.100 为例):

    JSON复制

    json 复制代码
    {
      "insecure-registries": ["192.168.1.100"]
    }
  2. 重启 Docker 服务:

    Shell复制

    shell 复制代码
    sudo systemctl restart docker
    ```[^8^]

七、使用 Harbor

(一)登录 Harbor

Shell复制

shell 复制代码
docker login 192.168.1.100

输入用户名和密码(默认用户名为 admin,密码为安装时设置的 harbor_admin_password)。

(二)推送镜像到 Harbor

  1. 标记镜像:

    Shell复制

    shell 复制代码
    docker tag my-image:tag 192.168.1.100/project/my-image:tag
  2. 推送镜像:

    Shell复制

    shell 复制代码
    docker push 192.168.1.100/project/my-image:tag

(三)从 Harbor 拉取镜像

Shell复制

shell 复制代码
docker pull 192.168.1.100/project/my-image:tag

八、配置 HTTPS(可选)

为了提高安全性,建议为 Harbor 配置 HTTPS。可以通过自签名证书或购买商业证书来实现。以下是使用自签名证书的示例:

  1. 生成自签名证书(以 hub.laijuba.com 为例):

    Shell复制

    shell 复制代码
    openssl req -newkey rsa:4096 -nodes -sha256 -keyout hub.laijuba.com.key -x509 -days 365 -out hub.laijuba.com.crt
  2. 将证书和私钥复制到 Harbor 配置目录:

    Shell复制

    shell 复制代码
    mkdir -p /etc/docker/certs.d/hub.laijuba.com
    cp hub.laijuba.com.crt hub.laijuba.com.key /etc/docker/certs.d/hub.laijuba.com/
  3. 重启 Docker 服务:

    Shell复制

    shell 复制代码
    systemctl restart docker
  4. 重新登录 Harbor:

    Shell复制

    shell 复制代码
    docker login hub.laijuba.com

    此时应该能够成功登录并使用 HTTPS 访问 Harbor。

九、总结

通过以上步骤,您已经成功搭建了自己的 Docker 私有仓库 Harbor。Harbor 提供了丰富的功能,可以帮助您更好地管理 Docker 镜像。您可以根据实际需求进行进一步的配置和优化,如配置镜像复制、漏洞扫描等高级功能。

相关推荐
哈里谢顿16 分钟前
Kubernetes Operator核心概念、实现原理和实战开发
云原生
阿里云云原生5 小时前
你的 OpenClaw 真的在受控运行吗?
云原生
NineData5 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
阿里云云原生5 小时前
5 分钟零代码改造,让 Go 应用自动获得全链路可观测能力
云原生·go
Shanyoufusu126 小时前
RKE2 单节点集群安装 Rancher+ 私有镜像仓库搭建 完整教程
云原生
阿里云云原生6 小时前
Dify 官方上架 Higress 插件,轻松接入 AI 网关访问模型服务
云原生
AI攻城狮8 小时前
OpenClaw Session 管理完全指南:Context 压缩、重置与持久化
人工智能·云原生·aigc
fetasty13 小时前
rustfs加picgo图床搭建
docker
YuMiao14 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
蝎子莱莱爱打怪1 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes