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

相关推荐
为思念酝酿的痛2 小时前
POSIX信号量
linux·运维·服务器·后端
专业白嫖怪2 小时前
什么是docker
运维·docker·容器
隔窗听雨眠3 小时前
Nginx网关响应慢排查手记
java·服务器·nginx
人还是要有梦想的3 小时前
linux下用搜狗输入法,中英文切换
linux·运维·服务器
北京智和信通3 小时前
某部队IT基础设施及机房动环统一运维建设实例
运维·网管平台·网管软件·网络管理系统·网络运维平台·网络运维系统
乐维_lwops3 小时前
从 “救火运维” 到 “自动驾驶”:运维智能体到底解决了什么?
运维·人工智能·运维智能体
bush44 小时前
嵌入式linux学习记录二
linux·运维·学习
9分钟带帽4 小时前
linux_通过NFS挂载远程服务器的硬盘
linux·服务器
weixin_468466854 小时前
MoneyPrinterTurbo 短视频自动化生产实战指南
运维·人工智能·自动化·大模型·音视频·moneyprinter
難釋懷4 小时前
Nginx自签名-图形化工具 XCA
运维·nginx