Установка и базовое администрирование Harbor на Ubuntu 22.04 с Docker
Important: Перед началом убедитесь, что у вас есть рабочая резервная копия и доступ к DNS/сертификатам для домена, который вы будете использовать для Harbor.
Основные цели и варианты поиска
- Первичная цель: установка Harbor на Ubuntu 22.04 с Docker
- Варианты/связанные запросы: “Harbor на Docker”, “Установка Harbor Ubuntu 22.04”, “Harbor offline installer”, “Настройка Harbor SSL”

Harbor — проект с выпуском CNCF, корпоративный реестр контейнерных образов. Он обеспечивает хранение и распространение образов, управление доступом на основе ролей, сканирование на уязвимости, подпись образов и политики безопасности. Harbor подходит для использования в Kubernetes и Docker-ориентированных средах.
В этой статье подробно описаны этапы установки Harbor с использованием Docker на сервере Ubuntu 22.04. Пошагово пройдём подготовку системы, установку Docker CE, установку Harbor через офлайн-инсталлятор, настройку HTTPS, базовую администрацию (пользователи, проекты) и загрузку образов.
Кому предназначено руководство
Кратко: системным администраторам и инженерам DevOps, у которых есть доступ к серверу Ubuntu 22.04 и базовые навыки работы с командной строкой и Docker.
Определение терминов в одну строку:
- Harbor — реестр контейнерных образов с расширенными функциями безопасности и управления.
- Docker CE — движок контейнеризации Community Edition.
Требования
- Сервер Ubuntu 22.04 (в примере hostname: harbor-server).
- Ненулевой пользователь с sudo-привилегиями.
- Зарегистрированный домен или локальный DNS-запись для доступа к Harbor (например registry.example.local).
- Сгенерированные SSL-сертификаты для выбранного домена (Let’s Encrypt или корпоративный CA) или подготовленные самоподписанные сертификаты для тестовой среды.
План действий (быстрая карта)
- Установить Docker CE и плагин docker-compose.
- Скачать офлайн-инсталлятор Harbor и распаковать его в /opt/harbor.
- Отредактировать harbor.yml: hostname, https, пароль администратора, DB.
- Запустить ./install.sh и проверить контейнеры через docker compose ps.
- Настроить пользователей и проекты в веб-интерфейсе.
- Войти через docker login и загрузить образы.
1. Установка Docker CE
Harbor можно развернуть в Kubernetes через Helm или локально с помощью Docker. Здесь мы устанавливаем Docker CE из официального репозитория Docker.
- Установим зависимости для добавления репозитория:
sudo apt install \
ca-certificates \
curl \
gnupg \
lsb-releaseПодтвердите установку клавишей y, затем ENTER.
- Загрузите ключ GPG и добавьте репозиторий Docker:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null- Обновите индекс пакетов и установите Docker CE и плагин Docker Compose:
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-pluginПодтвердите установку.

- Проверьте статус службы Docker:
sudo systemctl is-enabled docker
sudo systemctl status dockerСервис должен быть включён и работать (enabled, active).

Совет: если вы используете пользовательский firewall (ufw), откройте порты, которые понадобятся для взаимодействия (обычно HTTPS 443 и другие внутренние сервисы по необходимости). Для production-среды рекомендуется запускать Harbor за обратным прокси или LB.
2. Загрузка офлайн-инсталлятора Harbor
Офлайн-инсталлятор содержит все необходимые образы и позволяет установить Harbor без подключения к интернету на этапе развёртывания. Если вы предпочитаете online-установку, можно использовать online-инсталлятор.
Перейдите в /tmp и скачайте последний офлайн-пакет (пример с использованием GitHub API):
cd /tmp
curl -s https://api.github.com/repos/goharbor/harbor/releases/latest | grep browser_download_url | cut -d '"' -f 4 | grep '\.tgz$' | wget -i -Затем распакуйте скачанный архив (имя файла может отличаться в зависимости от версии):
tar -xzvf harbor-offline-installer-v2.6.1.tgzПеренесите папку harbor в /opt:
sudo mv harbor /opt/
Примечание: в офлайн-инсталлятор уже включены образы, что упрощает развёртывание в изолированных сетях.
3. Конфигурация Harbor (harbor.yml)
Перейдите в директорию инсталляции:
cd /opt/harborСоздайте конфигурационный файл из шаблона и отредактируйте его:
cp harbor.yml.tmpl harbor.yml
sudo nano harbor.ymlОсновные параметры, которые нужно настроить:
- hostname: доменное имя для доступа к UI и registry (не используйте localhost или 127.0.0.1). Пример: registry.howtoforge.local
- https.port: порт HTTPS (обычно 443)
- https.certificate и https.private_key: полные пути к файлам сертификата и ключа
- harbor_admin_password: начальный пароль администратора (измените после первого входа)
- database.password: пароль пользователя root для внутренней БД (поменяйте для production)
Пример изменений в файле harbor.yml:
# The IP address or hostname to access admin UI and registry service.
# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname: registry.howtoforge.local
....
https:
# https port for harbor, default is 443
port: 443
# The path of cert and key files for nginx
certificate: /etc/letsencrypt/live/registry.howtoforge.local/fullchain.pem
private_key: /etc/letsencrypt/live/registry.howtoforge.local/privkey.pem
....
# The initial password of Harbor admin
# It only works in first time to install harbor
# Remember Change the admin password from UI after launching Harbor.
harbor_admin_password: Harbor_Docker_Ubuntu
....
# Harbor DB configuration
database:
# The password for the root user of Harbor DB. Change this before any production use.
password: db_pass_harborКраткие пояснения:
- hostname — доменное имя, по которому пользователи будут обращаться к реестру.
- https — путь к сертификату и приватному ключу для Nginx, который используется внутри Harbor.
- harbor_admin_password — только для первой установки; после запуска смените пароль через UI.
- database.password — смените на надёжный пароль.
Important: если вы используете самоподписанный сертификат для тестовой среды, то клиентам (например Docker) придётся явно доверять этому сертификату или передавать опции при запросах.
4. Установка Harbor через скрипт
Убедитесь, что вы находитесь в /opt/harbor, затем запустите инсталлятор:
sudo ./install.shИнсталлятор проверит системные требования (наличие Docker, docker compose), распакует образы и подготовит окружение.

Инсталляция может занять несколько минут, особенно на этапах распаковки образов и запуска контейнеров.


После завершения вы увидите, что сервисы контейнеров запущены.
Проверьте состояние через docker compose:
ls
docker compose psВ выводе должны быть сервисы Harbor со статусом Up и healthy.

5. Проверка веб-интерфейса и первый вход
Откройте браузер и перейдите по адресу: https://registry.howtoforge.local/ (замените на ваш hostname).
Войдите под пользователем admin и паролем, который вы задали в harbor.yml.

После успешного входа вы попадёте на дашборд Harbor, где по умолчанию создаётся проект library.

Совет: сразу смените пароль администратора и настройте двухфакторную аутентификацию через внешнюю систему (если доступно) или SSO.
6. Базовое администрирование: создание пользователей и проектов
Создание пользователя
Перейдите в Administration → Users → NEW USER.

Заполните данные пользователя (в примере — alice) и подтвердите.

После создания пользователь появится в списке.

Добавление пользователя в проект и роль
Перейдите в Project → выберите проект (например library) → Members → Add member.

Добавьте пользователя alice и назначьте роль Project Admin или Developer в зависимости от разрешений.

Подтвердите и проверьте, что alice отображается в списке членов проекта.

Совет по RBAC: ограничивайте права до минимума, необходимого для задач. Используйте роли Project Admin только для администраторов проекта.
7. Доступ к реестру через Docker CLI
На клиентской машине (или на сервере, откуда вы будете пушить образы) выполните команду логина:
docker login https://registry.howtoforge.local/Укажите имя пользователя и пароль (например alice). При успешном входе вы увидите “Login Succeeded”.

Теперь можно подтягивать и отправлять образы.
8. Публикация образов в Harbor
- Скачайте базовый образ, например nginx:alpine:
docker pull nginx:alpine- Проверьте локальные образы:
docker images
- Перетащите (tag) образ в формат registry/project/image:tag и отправьте его в Harbor:
docker tag nginx:alpine registry.howtoforge.local/library/nginx:alpine
docker push registry.howtoforge.local/library/nginx:alpineВы увидите процесс отправки слоёв образа.

- В UI Harbor откройте Projects → library → Repositories и убедитесь, что образ появился.

9. Проверки и базовое тестирование
Критерии приёмки:
- Веб-интерфейс доступен по HTTPS и не возвращает ошибок сертификата (в production).
- Docker CLI может выполнить docker login и docker push/pull без ошибок.
- Все необходимые контейнеры Harbor работают и имеют статус healthy.
Тестовые шаги:
- Откройте веб-интерфейс и авторизуйтесь как admin.
- Создайте проект, добавьте пользователя, назначьте роль.
- Выполните docker login на клиенте и docker push тестового образа.
- Проверьте, что образ появился в UI и метаданные корректны.
10. Рекомендации по безопасности и обслуживанию
- SSL: используйте доверенные сертификаты (Let’s Encrypt/вендорские CA) в production. Проверяйте срок действия сертификатов и автоматизируйте их обновление.
- Бэкапы: регулярно бэкапьте конфигурацию Harbor и базу данных. Для восстановления храните tar-архивы образов и таблицы базы.
- Обновления: обновляйте Harbor и Docker по мере выхода патчей и релизов. Тестируйте обновления в staging перед production.
- Сканирование уязвимостей: включите встроенный сканер (Trivy или Clair) для автоматического сканирования загружаемых образов.
- Подпись образов: используйте Notary/Notary v2 или Sigstore (cosign) для подписания образов и проверки целостности.
- RBAC и аудит: включите логирование и аудит действий пользователей в Harbor.
Security hardening — чеклист:
- Включить HTTPS и отключить HTTP, если используется Nginx внутри Harbor.
- Отключить анонимный доступ к реестру (если не нужен).
- Включить сканирование и политику блокировки уязвимых образов.
- Ограничить доступ по IP или через VPN для приватного реестра.
11. Резервное копирование и восстановление (мини-SOP)
Минимальная процедура бэкапа:
- Остановите Harbor-сервисы (docker compose down) при кратком окне выполнения бэкапа.
- Скопируйте директории с данными: конфигурацию, хранение образов (persistent volumes), базу данных.
- Экспортируйте/дампите базу данных (postgres) командой pg_dump.
- Сохраните tar.gz архивы в удалённое хранилище.
Восстановление (в общих чертах):
- Развёрните чистую инстанцию Harbor той же версии.
- Остановите сервисы.
- Разверните данные из архива, восстановите дамп БД.
- Запустите сервисы и проверьте целостность образов и метаданных.
Замечание: всегда проверяйте процедуру восстановления в тестовой среде.
12. Частые проблемы и пути решения
Проблема: docker login выдаёт ошибку сертификата — решение: либо настроить доверие к CA на клиенте, либо использовать CA с доверенным корнем.
Проблема: сервисы Harbor не стартуют — решение: просмотрите логи docker compose (docker compose logs), проверьте свободное место на диске, память и права доступа к директориям с сертификатами.
Проблема: образы не отображаются в UI, но push завершился успешно — решение: проверьте логи core/registry и базу данных; возможно, требуется повторный sync метаданных.
Проблема: установщик прекращает работу на этапе распаковки образов — решение: убедитесь, что пакет офлайн-инсталлятора скачан полностью и has correct permissions; проверьте доступность образов в локальном кеше.
13. Альтернативные подходы и масштабирование
- Развёртывание в Kubernetes (Helm chart): если у вас уже есть кластер K8s, разверните Harbor с помощью официального Helm chart — это упростит масштабирование и интеграцию с Kubernetes.
- HA-режим: для production используйте HA-конфигурации с внешним кластером БД, репликами и балансировщиком нагрузки.
- Использование облачных реестров: AWS ECR, GCR, Azure Container Registry — альтернатива для тех, кто предпочитает управляемые сервисы.
14. Роли и контрольный список (Role-based checklist)
Администратор системы:
- Установить Docker, подготовить сертификаты.
- Развернуть Harbor и настроить доступ по HTTPS.
- Настроить бэкапы и мониторинг.
Администратор проекта:
- Создать проекты, управлять членами и правами доступа.
- Настроить политики сканирования и репликации.
Developer (разработчик):
- Выполнить docker login.
- Поместить образы в проект согласно naming conventions.
15. Ключевые выводы
- Harbor даёт корпоративный набор возможностей: RBAC, сканирование, подпись и аудит.
- Развёртывание с Docker — быстрый путь для небольших инсталляций или тестовых сред.
- Для production рассмотрите Kubernetes-развёртывание, HA и внешний datastore.
Краткое резюме
Вы установили Harbor на Ubuntu 22.04 с помощью Docker CE и офлайн-инсталлятора. Настроили HTTPS, создали пользователя и проект, залогинились через Docker CLI и загрузили образ. Выполните регулярные бэкапы, следите за обновлениями и включите механизмы безопасности.
Summary:
- Установите Docker CE и docker-compose-plugin.
- Скачайте и распакуйте офлайн-инсталлятор Harbor в /opt/harbor.
- Отредактируйте harbor.yml, особенно hostname и https.
- Запустите sudo ./install.sh и проверьте docker compose ps.
- Создайте пользователей, назначьте роли и загрузите образы через docker push.
Дополнительные материалы и ссылки: официальный репозиторий Harbor (goharbor/harbor) и документация по Helm-чарту для Kubernetes.
extras:
Ключевые выносы:
- Установить Docker CE из официального репозитория.
- Использовать офлайн-инсталлятор Harbor и настроить harbor.yml.
- Проверить запуск сервисов через docker compose и выполнять docker login/push.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить