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

相关推荐
KeyPan3 小时前
【Ubuntu与Linux操作系统:十、C/C++编程】
linux·运维·服务器·c语言·c++·算法·ubuntu
陌上花开缓缓归以4 小时前
linux 内核OOM问题定位-SLAB_DEBUG
linux·运维·服务器
.:::.4 小时前
Linux 软件逆向静态分析
linux
hao_wujing4 小时前
使用 Linux tracepoint、perf 和 eBPF 跟踪数据包
linux·运维·php
名为逗比4 小时前
从CentOS到龙蜥:企业级Linux迁移实践记录(龙蜥开局)
linux·运维·centos
特轮飞4 小时前
Linux物理地址到虚拟地址的映射
linux
小诸葛的博客5 小时前
docker run一个镜像如何指定最大可使用的内存大小、cpu大小
运维·docker·容器
金州饿霸5 小时前
YARN 架构组件及原理
linux·运维·前端