Skip to content

Harbor 搭建 Docker 私有镜像仓库

官方文档:https://goharbor.io/

软件依赖

  • Docker 18.06 或更高版本
  • Docker Compose 1.22.0 或更高版本

下载

下载安装包:https://github.com/goharbor/harbor/releases

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

使用 tar 提取安装程序包:

shell
# Offline installer:  离线安装程序(640MB 国内推荐):
tar -xzvf harbor-offline-installer-version.tgz

# Online installer:  在线安装程序(11.5kb):
tar -xzvf harbor-online-installer-version.tgz

cd harbor

配置 Harbor

shell
# 复制配置模板并编辑:
cp harbor.yml.tmpl harbor.yml
vi harbor.yml

配置参考:https://goharbor.io/docs/2.14.0/install-config/configure-yml-file/

核心配置项说明:

配置项说明示例
hostnameHarbor 访问地址(IP或域名)192.168.188.139
http.portHTTP 访问端口80
httpsHTTPS 配置(生产环境必须)注释或填写证书路径
harbor_admin_password管理员密码默认为:Harbor12345
data_volume数据存储路径/data

基础配置示例(仅 HTTP):

yaml
hostname: 192.168.188.139
http:
  port: 80
harbor_admin_password: Harbor12345
data_volume: /data

安装并启动 Harbor

shell
cd /home/aday/harbor

sudo ./install.sh

安装脚本会自动:

  • 检查 Docker 和 Docker Compose 环境
  • 根据 harbor.yml 生成配置文件
  • 拉取或加载所需的 Docker 镜像
  • 启动所有 Harbor 服务容器

安装完成后会看到类似以下提示:

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

启动和管理 Harbor

shell
# 进入 Harbor 目录
cd /home/aday/harbor

# 启动 Harbor
sudo docker compose up -d

# 停止 Harbor
sudo docker compose down

# 重启 Harbor
sudo docker compose restart

# 查看容器状态
sudo docker compose ps

访问 Web 控制台

打开浏览器,访问 http://<你的服务器IP>:<配置的端口>(默认端口 80):

默认账号:admin

默认密码:Harbor12345(或你在 harbor.yml 中配置的密码)

登录后即可看到 Harbor 主界面,可以进行项目创建、用户管理、镜像管理等操作

配置 Docker 信任非 HTTPS 仓库

如果 Harbor 未配置 HTTPS,需要在客户端 Docker 的配置文件中添加 insecure-registries:

shell
sudo vim /etc/docker/daemon.json

# 添加以下内容:
{
  "insecure-registries": ["192.168.188.139:80"]
}

重载配置并重启 Docker:

shell
sudo systemctl daemon-reload
sudo systemctl restart docker

登录 Harbor 并推送镜像

shell
# 登录 Harbor(输入账号和密码)
sudo docker login 192.168.188.139:80

# 标记镜像(要先在 Web 控制台中创建好项目,这里是:myproject,否则推送会 401)
# 默认已有的项目名称为:library
sudo docker tag nginx:latest 192.168.188.139:80/myproject/nginx:v1

# 推送镜像
sudo docker push 192.168.188.139:80/myproject/nginx:v1

# 拉取镜像
sudo docker pull 192.168.188.139:80/myproject/nginx:v1