一、前言
企业生产环境建议自建私有镜像仓库。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 个核心组件构成:
-
Proxy:反向代理
-
Registry:存储镜像、处理 push/pull
-
Core services:UI、WebHook、Token
-
Database:用户、权限、日志
-
Job services:镜像复制
-
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 是企业级私有镜像仓库的首选,部署简单、功能强大、中文友好。 本文一次性覆盖 安装、配置、异常处理、镜像上传、开机自启,可直接用于生产环境。