Как установить Harbor Docker Image Registry на Ubuntu 22.04

Harbor – это реестр образов Docker с открытым исходным кодом для облачных нативных сред. Будучи реестром образов, harbor используется для хранения и распространения образов контейнеров. Для обеспечения безопасности артефактов Harbor предоставляет защиту с помощью политик, контроль доступа на основе ролей пользователей, сканер безопасности для образов, гарантирующий отсутствие в них уязвимостей, и подпись образов, которая гарантирует, что пользователи получают образы из доверенного реестра. Harbor – это проект выпускников CNCF и реестр образов корпоративного уровня. В этом руководстве я покажу, как установить Harbor Image Registry с помощью Docker на сервер Ubuntu 22.04. Это руководство включает в себя установку Docker CE, базовую установку Harbor с включенным SSL, а также базовое использование и администрирование Harbor в качестве реестра образов.

Установка Docker CE (Community Edition)

Реестр образов harbor предоставляет несколько версий, которые могут быть установлены на различные типы сред. Вы можете развернуть harbor в Kubernetes с помощью диаграммы Helm или установить harbor с помощью Docker. В данном примере вы установите harbor с помощью движка Docker. Итак, сейчас вы установите Docker CE (Community Edition) на ваш сервер Ubuntu через официальный репозиторий Docker. Выполните команду apt ниже для установки некоторых основных зависимостей.

sudo apt install ca-certificates curl gnupg lsb-release

Введите y, когда появится запрос на подтверждение. После установки зависимостей выполните следующую команду для загрузки GPG-ключа для репозитория Docker, а затем добавьте официальный репозиторий 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

Теперь обновите индекс пакетов с помощью команды apt, приведенной ниже.

sudo apt update

Вы получите сообщение о том, что репозиторий Docker CE добавлен. Далее с помощью следующей команды apt установите Docker CE и Docker Compose на вашу систему.

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Введите y для подтверждения установки, затем нажмите ENTER для продолжения.

После установки Docker выполните следующую команду systemctl для проверки текущего состояния службы Docker.

sudo systemctl is-enabled dockersudo systemctl status docker

Вы должны получить результат, как показано на следующем снимке экрана – служба Docker запущена и включена. Служба Docker будет запускаться автоматически при загрузке системы.

После установки движка Docker необходимо запустить установку Harbor, загрузив пакет Harbor Installer.

Загрузка пакета Harbor Installer

Для установки порта необходимо загрузить пакет установщика порта. Существует два типа инсталляторов harbor: оффлайн-версия и онлайн-версия. В данном руководстве для установки harbor используется оффлайн-инсталлятор. Переместите рабочий каталог в „/tmp“ и загрузите автономную программу установки harbor с помощью команды curl, приведенной ниже.

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 -

Теперь извлеките автономную программу установки harbor с помощью команды tar, приведенной ниже. После извлечения программы установки должен появиться новый каталог „harbor“.

tar -xzvf harbor-offline-installer-v2.6.1.tgz

Переместите каталог „harbor“ в „/opt“, что означает, что ваша установка harbor будет „/opt/harbor“.

sudo mv harbor /opt/

Настройка установки Harbor

После загрузки автономной программы установки harbor вам предстоит настроить установку harbor с помощью конфигурационного файла „harbor.yml“, входящего в состав пакета harbor. С помощью файла „harbor.yml“ вы зададите доменное имя для установки harbor, включите безопасный HTTPS на harbor, зададите пароль администратора и, наконец, настроите базу данных.Перед началом работы убедитесь, что доменное имя указывает на IP-адрес сервера и сгенерированы SSL-сертификаты, которые будут использоваться для защиты harbor. Переместите рабочий каталог в каталог установки harbor „/opt/harbor“.

cd /opt/harbor

Копируйте шаблон конфигурации harbor_’harbor.yml_.tmpl“ в „harbor.yml“. Затем с помощью следующей команды редактора nano отредактируйте файл конфигурации порта „harbor.yml“.

cp harbor.yml.tmpl harbor.yml
sudo nano 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.hwdomain.io
....
# https related config
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /etc/letsencrypt/live/registry.hwdomain.io/fullchain.pem
  private_key: /etc/letsencrypt/live/registry.hwdomain.io/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 – доменное имя, которое будет использоваться для запуска реестра образов harbor. В данном примере будет установлена на „registry.hwdomain.io“.
  • https – отмена этой опции позволит включить и защитить установку гавани. Но также необходимо убедиться, что вы сгенерировали SSL-сертификаты для вашего домена и ввести полный путь к открытому и закрытому ключу сертификата.
  • harbor_admin_password – начальный пароль, который будет использоваться во время установки гавани.
  • database – конфигурация базы данных для гавани. Поэтому обязательно смените пароль на новый надежный пароль.

Установка Harbor с помощью сценария установщика и Docker Compose

Теперь, когда автономная программа установки harbor загружена и базовый конфигурационный файл „harbor.yml“ настроен, можно приступать к установке harbor с помощью сценария установки „install.sh“, доступного в каталоге установки harbor „/opt/harbor“. Перед началом установки harbor убедитесь, что ваш текущий рабочий каталог „/opt/harbor“.Теперь запустите сценарий установки harbor „install.sh“ с привилегиями sudo.

sudo ./install.sh

Теперь скрипт программы установки проверит системные требования перед началом установки harbor. Программа установки убедится, что в системе установлены движок Docker и Docker Compose.

Теперь программа установки извлечет образы, которые будут использоваться для развертывания harbor.

После этого программа установки подготовит системное окружение для развертывания harbor и сгенерирует необходимые конфигурации. После этого начнется установка.

По окончании установки должно появиться сообщение о том, что контейнерные службы harbor запущены.

После установки harbor с помощью сценария установщика необходимо проверить его работу, проверив контейнерные службы в системе и получив доступ к реестру образов harbor через веб-браузер.

Для проверки работы контейнерных служб harbor выполните следующую команду „docker compose“.

lsdocker compose ps

Далее откройте веб-браузер и зайдите на доменное имя вашей установки harbor (т.е.
https://registry.hwdomain.io/). Войдите в систему под стандартным пользователем admin и паролем, который вы задали в конфигурационном файле „harbor.yml“.

После ввода правильного пароля у вас должна появиться панель управления harbor. Также на экране появится проект по умолчанию с именем „library“.

На этом этапе вы завершили развертывание habaro и убедились, что он работает с помощью контейнерной оркестровки Docker engine и Docker Compose.

Создание пользователя Harbor

В разделе „Администрирование“ выберите меню „Пользователи“, затем нажмите кнопку „NEW USER“.

Введите данные о новом пользователе и подтвердите их нажатием кнопки „OK“. В данном примере будет создан новый пользователь Harbor „alice“, который будет использоваться для входа в Harbor через docker cli.

После создания пользователя вы должны увидеть его в списке меню „User“

Добавление пользователя в проект Harbor

В harbor проектом является пользовательское пространство, в котором будет работать пользователь. При установке по умолчанию harbor предоставляет имя проекта по умолчанию „library“. В этом шаге мы узнаем, как добавить нового пользователя „alice“ в проект по умолчанию „library“, чтобы он мог управлять проектом „library“. Также необходимо назначить роль для нового пользователя в целевом проекте.

Щелкните на меню „Project; и вы должны увидеть проект по умолчанию „library“.

Щелкните на проекте „library“, чтобы получить подробные настройки этого проекта.

Щелкните на меню „Members“ и вы должны увидеть, что в этом проекте есть только один пользователь-администратор. Нажмите кнопку „USER“, чтобы добавить пользователя harbor в проект „library“.

Введите пользователя, которого вы хотите добавить в проект, и назначьте ему роль. В данном примере пользователь „alice“ будет добавлен в проект „library“ с ролью „Project Admin“.

Теперь вы должны увидеть, что пользователь „alice“ доступен в списке участников проекта „library“.

Вход в Harbor через Docker Client

На этом шаге вы узнаете, как настроить реестр образов harbor с помощью Docker CLI. Вы будете входить в реестр образов harbor через Docker CLI под созданным пользователем – в данном примере используется пользователь „alice“. Вернитесь на свой терминальный сервер и выполните следующую команду docker для входа в реестр образов harbor.

docker login https://registry.hwdomain.io/

При появлении запроса введите имя пользователя и пароль. В данном примере будет использоваться пользователь „alice“. После успешного входа в систему должно появиться сообщение типа „Login Succeeded“.

После входа в систему harbor через docker cli теперь можно извлекать и вставлять изображения в систему harbor через docker cli.

Pushing Images to Harbor Registry

После авторизации в реестре образов harbor вы узнаете, как загрузить образ в реестр образов harbor с помощью Docker CLI.Перед началом работы выполните следующую команду docker для загрузки последней версии image_’nginx:alpine’_.

Теперь проверьте список образов с помощью приведенной ниже команды docker. Вы должны увидеть загруженный образ „nginx:alpine“.

docker images

Чтобы поместить пользовательские образы в реестр образов harbor, можно изменить тег текущего образа в формате „harbor-domain.com/project/image:version“. Для этого выполните следующую команду, чтобы изменить стандартный тег „nginx:alpine“ на „registry.hwdomain.io/library/nginx:alpine“.

docker tag nginx:alpine registry.hwdomain.io/library/nginx:alpine

После этого загрузите и вытолкните изображение в реестр изображений harbor следующей командой. Эта команда загрузит изображение в реестр изображений „registry.hwdomain.io“ с именем проекта „library“.

docker push registry.hwdomain.io/library/nginx:alpine

Ниже показан процесс загрузки изображения в реестр изображений harbor.

После того как изображение загружено в harbor, вернитесь в панель администрирования harbor, перейдите в меню „Project“ и нажмите „Repositories“. Вы должны увидеть, что новый образ загружен в реестр образов harbor через командную строку docker.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.howtoforge.com

Похожие статьи

Комментарии (0)