Поиск по сайту:

Начало работы с Реестром контейнеров Azure


В разработке программного обеспечения кажется, что независимо от того, куда вы идете, независимо от того, с кем вы разговариваете, контейнеры — это новая норма. Если вы еще не разрабатываете их или не переносите свое приложение, вы создаете поддерживающие системы, которые используют их для поддержки устаревшего приложения. Контейнеры повсюду.

Однако это означает, что вам, как инженеру, нужно будет где-то разместить свои контейнеры. В прежние времена это означало создание какого-либо артефакта, будь то двоичный файл или архив, затем запись его на диск или общую папку и распространение. В экосистеме контейнеров это будет реестр контейнеров, а создаваемые вами артефакты будут образами контейнеров.

В идеале реестр контейнеров должен находиться где-то в безопасном месте, где можно автоматизировать часть работы за вас, например, сканирование контейнера и инициирование действий при каждой фиксации или по расписанию. К счастью, Azure предоставляет вам все вышеперечисленное с помощью Реестра контейнеров Azure, или сокращенно ACR.

Предпосылки

Чтобы следовать дальше, вам понадобится следующее:

  • Учетная запись Azure
  • Контейнер для загрузки и извлечения из репозитория
  • (Необязательно) Терминал PowerShell, прошедший проверку подлинности в Azure или экземпляре CloudShell

Контейнер не обязательно должен быть чем-то большим, чем hello-world, потому что это руководство о реестрах контейнеров, а не о самих контейнерах. Если вы не знакомы с Docker или контейнерами, вы можете узнать о них больше здесь.

Создание реестра

Первое, что вам нужно сделать, это создать реестр, сначала с помощью портала Azure, а затем с помощью Azure PowerShell.

Использование портала

Перейдите к «Создать ресурс», затем посмотрите в разделе «Контейнеры» > «Реестр контейнеров».

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

После подготовки перейдите на страницу ресурса и найдите вкладку «Ключи доступа». Отсюда обязательно включите опцию «Admin User», чтобы вы могли войти в систему с помощью CLI позже.

Использование Azure PowerShell

В Azure PowerShell это делается одной строкой либо в экземпляре CloudShell, либо в консоли PowerShell с локальной проверкой подлинности с установленным модулем Azure PowerShell.

New-AzContainerRegistry -ResourceGroupName <имя группы ресурсов> -Name <имя реестра> -EnableAdminUser

Затем вы можете использовать командлет Get-AzContainerRegistry, чтобы получить список реестров, связанных с вашим клиентом. Вам по-прежнему потребуется свойство LoginServer, чтобы отправить образ в реестр, но вы можете получить его из Azure PowerShell, показанного в остальной части демонстрации.

Если вы включили флаг -EnableAdminUser, вы также сможете использовать командлет Get-AzContainerRegistryCredential, чтобы получить учетные данные для входа на следующем этапе.

Отправка изображения в ACR

Теперь, когда реестр и пользователь для него настроены, пришло время войти в систему и отправить в него образ. Вы можете войти в систему с помощью команды docker login. Если вы используете сценарий, убедитесь, что учетные данные не отображаются в виде обычного текста, передав их таким образом или используя Azure Key Vault.

# Azure PowerShell

$RG_NAME  = <Resource_Group_Name>
$ACR_NAME = <Registry_Name>

$registry = Get-AzContainerRegistry -ResourceGroupName $RG_NAME -Name $ACR_NAME
$creds = Get-AzContainerRegistryCredential -Registry $registry
$creds.Password | docker login $registry.LoginServer -u $creds.Username --password-stdin

Если вы делаете это вручную, просто запустите docker login и замените «» значением из «Login Server» на вкладке «Ключи доступа» ранее, затем имя пользователя администратора и пароль.

Теперь, когда вы вошли в систему, вы можете сколько угодно отправлять и извлекать образы контейнеров из репозитория. После локального создания или извлечения контейнера используйте команду docker tag, чтобы добавить в образ URL-адрес реестра и тег версии, а затем команду docker push, чтобы отправить его в ACR. Это должно выглядеть примерно так:

# Docker CLI

docker tag <Image_Name> <Registry_URL>/<Image_Name>:<Version_Tag>
docker push <Registry_URL>/<Image_Name>:<Version_Tag>

Имея образ в ACR, вы можете использовать docker pull с любого аутентифицированного устройства, чтобы извлечь образ и запустить его.

Краткое содержание

К настоящему времени вы должны быть знакомы с тем, как настроить реестр в ACR с помощью портала Azure или Azure PowerShell, а также с тем, как отправлять и извлекать из него контейнеры.

Отсюда вы можете рассмотреть возможность включения сканирования уязвимостей контейнера с помощью Центра безопасности Azure или автоматизации с помощью задач ACR.