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

相关推荐
Yang三少喜欢撸铁16 分钟前
【Linux部署DHCP服务】
linux·运维·服务器
GanGuaGua19 分钟前
linux系统下如何提交git和调试
服务器·git
太极淘20 分钟前
桌面版本及服务器版本怎么查看网络源软件包的url下载路径
运维·服务器·网络
自由与自然21 分钟前
乐观锁与悲观锁的使用场景
java·服务器·数据库
Black_Rock_br1 小时前
Mac监控新风尚:酷炫界面,性能监控更直观!
运维·macos
程序员小软1 小时前
linux-添加开机自启动指定脚本
linux·运维
安於宿命1 小时前
【Linux】用C++实现UDP通信:详解socket编程流程
linux·c++·udp
BUG 劝退师8 小时前
进程间通讯(IPC)
运维·服务器·网络
冷冷清清中的风风火火8 小时前
linux 里的创建了一个tomcat用户 怎么禁止该用户使用crontab 功能
linux·tomcat·firefox
言小乔.9 小时前
202520 | 微服务
微服务·云原生·架构