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 镜像。您可以根据实际需求进行进一步的配置和优化,如配置镜像复制、漏洞扫描等高级功能。

相关推荐
中科三方12 小时前
网站更换服务器不中断:域名解析平滑切换实战指南(国科云)
运维·服务器·dns
cui_ruicheng12 小时前
Linux入门(一):起源、生态与基础使用
linux·运维·服务器
米糕闯编程12 小时前
xshell使用CentOS10 root用户登录,权限问题
java·linux
安科士andxe13 小时前
实操指南|安科士EPON OLT光模块选型、部署与运维全流程解析
运维·服务器·网络
s090713613 小时前
Zynq-7000 PetaLinux 千兆网卡 Link UP 但无法 Ping 通的终极排查与解决(以 KSZ9031 为例)
linux·skew·zynq·ksz9031·ping不通
会飞的大可13 小时前
WMS系统演进——从单体到微服务
微服务·云原生·架构
Joker 00713 小时前
Ubuntu上安装FreeSurfer的详细流程
linux·深度学习·ubuntu
默默前行的虫虫14 小时前
声音触发器。用于自动化场景检测器
运维·自动化
okra-14 小时前
什么是接口?
服务器·前端·网络
想你依然心痛14 小时前
从零开始:Mac/Windows/Linux 三系统开发环境配置完全指南
linux·windows·macos