Установка Harbor (реестр артефактов)
В этом руководстве описано, как установить и настроить Harbor на сервере Ubuntu 24.04 LTS. Harbor — ведущий облачный реестр артефактов (проект CNCF graduated): он позволяет хранить артефакты в формате OCI (Open Container Initiative). Вы можете размещать сборки Docker (образы контейнеров), чарты Helm для Kubernetes, а также SBOM (Software Bill of Materials) и в последних версиях артефакты ИИ/ML. Harbor интегрирует Trivy для сканирования уязвимостей, RBAC, OIDC/LDAP и репликацию между реестрами.
Описываемая установка использует официальный установщик (Docker Compose) на ВМ или выделенном сервере с HTTPS и сертификатами Let's Encrypt.
Заказать сервер
Для размещения экземпляра Harbor HostMyServers предлагает несколько подходящих вариантов:
- VPS Performance — идеально для тестового реестра или небольшого объёма
- NVMe VPS — отличное соотношение цены и качества
- Эко выделенные серверы — для многих проектов или образов
- Выделенные серверы Performance — максимальная производительность
Предварительные требования
- SSH-доступ от root или пользователя с sudo
- Система Ubuntu 24.04 LTS 64 бит
- Docker (движок 20.10.10+) и Docker Compose (v2 или v1.18+)
- Доменное имя (например,
harbor.вашдомен.com) с записью A, указывающей на IP сервера - Доступны порты 80 (HTTP, для Certbot или редиректа) и 443 (HTTPS)
Требуемая конфигурация
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| ОЗУ | 4 ГБ | 8 ГБ |
| CPU | 2 ядра | 4 ядра |
| Хранилище | 40 ГБ | 160 ГБ |
| Сеть | 100 Мбит/с | 1 Гбит/с |
В продакшене всегда настраивайте HTTPS с действительными сертификатами (Let's Encrypt или корпоративная PKI). Harbor постепенно отказывается от HTTP.
Подключение к серверу
Подключитесь по SSH к серверу:
ssh пользователь@ip_адрес_сервера
Обновление системы
Обновите пакеты перед началом:
sudo apt update
sudo apt upgrade -y
Установка Docker и Docker Compose
Harbor использует Docker и Docker Compose. Если ещё не установлены:
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${VERSION_CODENAME:-$VERSION}") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Проверка:
docker --version
docker compose version
Получение TLS-сертификатов (Let's Encrypt)
Harbor должен быть настроен с сертификатом и закрытым ключом. Получите их с помощью Certbot до установки Harbor (порт 80 должен быть свободен):
sudo apt install -y certbot
sudo certbot certonly --standalone -d harbor.вашдомен.com -m ваш-email@пример.com --agree-tos --non-interactive
Файлы будут в /etc/letsencrypt/live/harbor.вашдомен.com/: fullchain.pem (сертификат) и privkey.pem (закрытый ключ). Запомните эти пути для следующего шага.
Certbot автоматически продлевает сертификаты. После продления перезапустите контейнеры Harbor для перезагрузки сертификатов: cd /opt/harbor && sudo docker compose down && sudo docker compose up -d.
Загрузка и распаковка Harbor
Harbor предоставляет офлайн-установщик (включает образы) или онлайн (загружает образы при первом запуске). Используем офлайн-установщик для надёжности.
Проверьте релизы Harbor на GitHub для последней стабильной версии (например, v2.14.2). При необходимости измените URL и имя файла:
cd /opt
sudo wget https://github.com/goharbor/harbor/releases/download/v2.14.2/harbor-offline-installer-v2.14.2.tgz
sudo tar xzvf harbor-offline-installer-v2.14.2.tgz
cd harbor
Настройка Harbor
Скопируйте шаблон конфигурации и отредактируйте его:
sudo cp harbor.yml.tmpl harbor.yml
sudo nano harbor.yml
Основные параметры для изменения (замените своими значениями):
# Имя хоста или домен (никогда localhost)
hostname: harbor.вашдомен.com
# HTTPS (обязательно в продакшене)
https:
port: 443
certificate: /etc/letsencrypt/live/harbor.вашдомен.com/fullchain.pem
private_key: /etc/letsencrypt/live/harbor.вашдомен.com/privkey.pem
# Пароль администратора (сменить при первом входе)
harbor_admin_password: ВашНадежныйПароль
# Каталог данных
data_volume: /data/harbor
# Сканирование уязвимостей с Trivy (рекомендуется)
trivy:
ignore_unfixed: false
security_check: vuln,config,secret
skip_update: false
insecure: false
| Параметр | Описание |
|---|---|
hostname | Домен или FQDN для доступа к Harbor (должен совпадать с сертификатом) |
https.certificate / private_key | Пути к сертификату и TLS-ключу |
harbor_admin_password | Пароль учётной записи admin (сменить при первом входе) |
data_volume | Каталог хранения данных Harbor |
trivy.* | Параметры сканера Trivy (CVE, config, secrets) |
Пароль по умолчанию в шаблоне — Harbor12345. Замените его на надёжный пароль перед первым запуском.
Запуск установки
Запустите скрипт установки с опцией Trivy для включения сканирования уязвимостей образов:
sudo ./install.sh --with-trivy
Скрипт проверяет предварительные требования, подготавливает файлы Docker Compose и запускает контейнеры. В конце должно отобразиться:
✔ ----Harbor has been installed and started successfully.----
Файрвол
При необходимости откройте порты HTTP и HTTPS:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
Доступ к Harbor
- Откройте браузер и перейдите по адресу:
https://harbor.вашдомен.com - Войдите с учётными данными по умолчанию: admin / пароль, заданный в
harbor_admin_password - Немедленно смените пароль администратора: Администрирование → Пользователи → изменить учётную запись admin
- Создайте проект (например,
мойпроект) для загрузки образов
Загрузка образа в Harbor
С машины с установленным Docker, которая может подключиться к вашему Harbor:
# Вход в реестр
docker login harbor.вашдомен.com
# Введите: admin и пароль
# Тегирование образа (замените на свой проект и образ)
docker tag nginx:alpine harbor.вашдомен.com/мойпроект/nginx:alpine
# Загрузка образа
docker push harbor.вашдомен.com/мойпроект/nginx:alpine
Образ отображается в проекте в интерфейсе Harbor. Если Trivy включён, сканирование может выполняться автоматически или вручную для отображения уязвимостей (CVE).
Harbor также поддерживает хранение чартов Helm (формат OCI). После настройки Helm с вашим реестром Harbor вы можете загружать и скачивать чарты с помощью helm push / helm pull из того же проекта. Таким образом, один реестр OCI может централизовать ваши образы Docker и чарты Helm для Kubernetes.