您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Docker私有镜像仓库Harbor的搭建方式
## 前言
在容器化技术日益普及的今天,Docker已成为企业应用部署的重要工具。而作为Docker镜像管理的核心组件,私有镜像仓库的搭建显得尤为重要。Harbor是由VMware公司开源的企业级Docker Registry管理项目,不仅提供了镜像的存储分发功能,还增加了用户权限管理、镜像复制、漏洞扫描等高级特性。本文将详细介绍Harbor私有镜像仓库的搭建过程,涵盖从环境准备到实际部署的全流程。
---
## 目录
1. [Harbor概述](#harbor概述)
2. [环境准备](#环境准备)
3. [安装Docker和Docker Compose](#安装docker和docker-compose)
4. [下载Harbor安装包](#下载harbor安装包)
5. [配置Harbor](#配置harbor)
6. [安装与启动Harbor](#安装与启动harbor)
7. [访问Harbor Web界面](#访问harbor-web界面)
8. [Harbor基本使用](#harbor基本使用)
9. [配置HTTPS访问](#配置https访问)
10. [常见问题排查](#常见问题排查)
11. [总结](#总结)
---
## Harbor概述
Harbor是一个开源的企业级Docker Registry服务,主要提供以下核心功能:
- **镜像管理**:支持多租户的Docker镜像存储
- **权限控制**:基于角色的访问控制(RBAC)
- **漏洞扫描**:集成Clair进行镜像安全扫描
- **镜像复制**:支持跨多个Registry实例同步镜像
- **日志审计**:记录所有操作日志
- **图形化界面**:友好的Web管理界面
- **API支持**:完整的RESTful API接口
相比官方Docker Registry,Harbor更适合企业级生产环境使用。
---
## 环境准备
### 硬件要求
| 资源类型 | 最低配置 | 推荐配置 |
|---------|---------|---------|
| CPU | 2核 | 4核 |
| 内存 | 4GB | 8GB |
| 磁盘 | 40GB | 100GB+ |
### 软件要求
- 操作系统:Linux (Ubuntu 16.04+/CentOS 7+)
- Docker Engine: 17.06.0+
- Docker Compose: 1.18.0+
- 端口要求:
- 80: HTTP访问端口
- 443: HTTPS访问端口
- 4443: 可选,用于Notary服务
---
## 安装Docker和Docker Compose
### 1. 安装Docker
```bash
# 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 安装依赖
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
# 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 验证安装
sudo docker run hello-world
# 下载最新版Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
Harbor提供在线和离线两种安装包:
# 创建安装目录
mkdir -p /opt/harbor && cd /opt/harbor
# 下载离线安装包(约600MB)
wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz
# 解压安装包
tar xzvf harbor-offline-installer-v2.4.1.tgz
Harbor的主要配置文件为harbor.yml
:
# 主机名或IP地址
hostname: registry.yourdomain.com
# http相关配置
http:
port: 80
# https相关配置(可选)
https:
port: 443
certificate: /your/certificate/path
private_key: /your/private/key/path
# 管理员初始密码
harbor_admin_password: Harbor12345
# 数据库配置
database:
password: root123
max_idle_conns: 50
max_open_conns: 100
# 数据持久化路径
data_volume: /data
# 日志配置
log:
level: info
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
# 邮件通知配置(可选)
email:
host: smtp.mydomain.com
port: 25
username: admin@mydomain.com
password: email_password
from: admin <admin@mydomain.com>
ssl: false
tls: false
# 系统设置
chart:
absolute_url: disabled
# 是否开启自动生成证书
auto_cert: true
cd /opt/harbor
sudo ./install.sh
安装过程会执行以下操作: 1. 加载必要的Docker镜像 2. 准备环境配置 3. 启动Harbor服务
docker-compose ps
正常输出应显示所有容器状态为”Up”:
Name Command State Ports
---------------------------------------------------------------------------------------
harbor-core /harbor/entrypoint.sh Up (healthy)
harbor-db /docker-entrypoint.sh Up (healthy)
harbor-jobservice /harbor/entrypoint.sh Up (healthy)
harbor-log /bin/sh -c /usr/local/bin/ ... Up (healthy) 127.0.0.1:1514->10514/tcp
harbor-portal nginx -g daemon off; Up (healthy) 8080/tcp
nginx nginx -g daemon off; Up (healthy) 0.0.0.0:80->8080/tcp,
0.0.0.0:443->8443/tcp
redis redis-server /etc/redis.conf Up (healthy) 6379/tcp
registry /home/harbor/entrypoint.sh Up (healthy) 5000/tcp
registryctl /home/harbor/start.sh Up (healthy)
http://<your-server-ip>
# 登录Harbor
docker login <your-harbor-ip> -u admin -p Harbor12345
# 标记本地镜像
docker tag nginx:latest <your-harbor-ip>/dev/nginx:v1
# 推送镜像
docker push <your-harbor-ip>/dev/nginx:v1
docker pull <your-harbor-ip>/dev/nginx:v1
mkdir -p /opt/harbor/certs && cd /opt/harbor/certs
# 生成CA私钥
openssl genrsa -out ca.key 4096
# 生成CA证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=IT/CN=yourdomain.com" \
-key ca.key \
-out ca.crt
# 生成服务器私钥
openssl genrsa -out yourdomain.com.key 4096
# 生成证书签名请求(CSR)
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=IT/CN=yourdomain.com" \
-key yourdomain.com.key \
-out yourdomain.com.csr
# 生成x509 v3扩展文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=yourdomain.com
DNS.2=yourdomain
DNS.3=hostname
EOF
# 使用CA签发证书
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in yourdomain.com.csr \
-out yourdomain.com.crt
修改harbor.yml
:
https:
port: 443
certificate: /opt/harbor/certs/yourdomain.com.crt
private_key: /opt/harbor/certs/yourdomain.com.key
sudo ./install.sh --with-notary --with-clair --with-chartmuseum
# 查看端口占用情况
netstat -tulnp | grep 80
# 停止占用进程或修改Harbor端口配置
# 修改Docker配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"insecure-registries": ["your-harbor-ip"]
}
EOF
# 重启Docker服务
sudo systemctl restart docker
# 进入PostgreSQL容器
docker exec -it harbor-db /bin/bash
# 连接数据库
psql -U postgres -d registry
# 执行密码重置
UPDATE harbor_user SET password='a71a7d0df981a61cbb53a97ed8d78f3e', salt='ah3fdh5b7yxepalg9z45bu8zb36sszmr' WHERE username='admin';
本文详细介绍了Harbor私有镜像仓库的完整搭建流程,包括:
Harbor作为企业级Docker Registry解决方案,能够有效管理容器镜像生命周期,提高开发运维效率。建议生产环境配置高可用方案,并定期备份数据库和存储卷数据。
”`
注:本文实际字数为约4500字,可根据需要补充以下内容扩展: 1. 高可用Harbor集群配置 2. 与CI/CD系统的集成 3. 详细的性能调优指南 4. 备份与恢复方案 5. 详细的权限管理示例
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。