企业级 Docker 私有仓库 Harbor 部署与实战(完整教程)

0 阅读1分钟

一、前言

企业生产环境建议自建私有镜像仓库。Harbor 是 VMware 开源的企业级 Docker Registry,支持 权限管理、镜像复制、图形化 UI、日志审计、中文界面,是目前最主流的私有仓库方案。 本文从零带你完成:Docker-Compose 安装 → Harbor 部署 → 客户端配置 → 镜像上传 → 开机自启 → 异常排查,全程可直接复制运行。

二、安装 Docker和Docker‑Compose

下载docker离线包

地址:https://download.docker.com/linux/static/stable/

在这里插入图片描述 进入相应目录,下载需要的docker版本 下载后上传至服务器解压

tar -xvf docker-20.10.7.tgz
#将 docker 文件移动到 /usr/bin 目录下
cp -r docker/* /usr/bin

编写docker.service

vim docker.service
#内容如下:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

添加到系统服务, 将 docker.service 移到 /etc/systemd/system/ 目录

cp docker.service /etc/systemd/system
# 设置 docker.service 文件权限
chmod +x /etc/systemd/system/docker.service
#重新加载配置文件
systemctl daemon-reload
# 启动docker
systemctl start docker
# 设置 docker 开机自启
systemctl enable docker.service

Harbor 使用 docker-compose 编排管理容器, docker-compose安装

cp docker-compose-linux-x86_64 /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose

Docker‑Compose 常用命令

docker-compose up        # 前台启动
docker-compose up -d     # 后台启动
docker-compose build     # 构建镜像
docker-compose ps         # 查看运行状态
docker-compose stop       # 停止服务
docker-compose start      # 启动服务
docker-compose rm         # 删除容器

三、Harbor 介绍

3.1 Harbor 功能

  • 基于角色的权限控制

  • 图形化 Web UI

  • 镜像跨节点复制(类似主从同步)

  • 支持 LDAP/AD 集成

  • 镜像删除、垃圾回收

  • 操作审计日志

  • RESTful API

3.2 Harbor 架构

Harbor 由 6 个核心组件构成:

  1. Proxy:反向代理

  2. Registry:存储镜像、处理 push/pull

  3. Core services:UI、WebHook、Token

  4. Database:用户、权限、日志

  5. Job services:镜像复制

  6. Log collector:日志汇总

3.3 使用注意事项

  • 客户端 push 前必须 docker login

  • 非 HTTPS 要配置 insecure-registries

  • 数据目录要放大容量磁盘

  • Harbor 启停统一使用 docker-compose


四、Harbor 部署(离线安装)

4.1 下载并解压

wget https://github.com/goharbor/harbor/releases/download/v2.4.3/harbor-offline-installer-v2.4.3.tgz

tar xf harbor-offline-installer-v2.4.3.tgz -C /usr/local/
cd /usr/local/harbor/

4.2 配置 harbor.yml

cp harbor.yml.tmpl harbor.yml
vim harbor.yml

修改:

hostname: 10.10.88.6     # 改为你的服务器 IP

# https:
#   port: 443
#   certificate: /your/certificate/path
#   private_key: /your/private/key/path

注释掉 https 部分(没有证书时)。

4.3 启动 Harbor

./install.sh

成功提示:

✔ ----Harbor has been installed and started successfully.----

4.4 查看容器

docker ps

4.5 容器异常重启(restarting)解决

chmod -R 777 ./common
./prepare
docker-compose down -v
docker-compose up -d

docker-compose ps -a
docker-compose logs --tail=100

五、客户端配置(允许 HTTP 私有仓库)

vi /etc/docker/daemon.json
{
  "insecure-registries": ["10.10.88.6:8000"]
}
systemctl daemon-reload
systemctl restart docker

# 登录测试
docker login http://10.10.88.6:8000 -u admin -p Harbor12345

六、批量上传镜像脚本

#!/bin/bash

REGISTRY="10.10.88.6:8000"

# 登录
docker login $REGISTRY -u admin -p Harbor12345

# 镜像列表
images=(
kubesphere/ks-installer:v3.3.0
kubesphere/ks-controller-manager:v3.3.0
kubesphere/ks-apiserver:v3.3.0
kubesphere/ks-console:v3.3.0
kubesphere/kube-apiserver:v1.22.10
calico/node:v3.20.0
calico/cni:v3.20.0
)

# 自动创建项目 + 推送
for img in "${images[@]}"; do
  project=$(echo $img | cut -d'/' -f1)
  echo "创建项目:$project"

  curl -u "admin:Harbor12345" -X POST \
    http://$REGISTRY/api/v2.0/projects \
    -H "Content-Type: application/json" \
    -d '{"project_name":"'"$project"'","public":true}' 2>/dev/null

  echo "推送:$REGISTRY/$img"
  docker push $REGISTRY/$img
done

echo "✅ 全部上传完成"

手动创建项目 API

curl -u "admin:Harbor12345" -X POST \
http://10.10.88.6:8000/api/v2.0/projects \
-H "Content-Type: application/json" \
-d '{"project_name":"test","public":true}'

七、访问 Harbor Web UI

浏览器访问:

http://10.10.88.6

默认账号:admin 默认密码:Harbor12345(可在 harbor.yml 修改)


八、Harbor 开机自启

vim /etc/rc.local

写入:

#!/bin/bash
cd /usr/local/harbor
docker-compose start

授权:

chmod +x /etc/rc.d/rc.local
reboot

开机后检查:

docker ps

九、总结

Harbor 是企业级私有镜像仓库的首选,部署简单、功能强大、中文友好。 本文一次性覆盖 安装、配置、异常处理、镜像上传、开机自启,可直接用于生产环境。