Прочитать на английском

Поделиться через


Краткое руководство: Создание частного регистратора контейнеров с помощью Azure PowerShell

Реестр контейнеров Azure — это служба частного реестра для создания, хранения и обслуживания образов контейнеров и связанных с ними артефактов. В этом кратком руководстве вы создадите экземпляр реестра контейнеров Azure с помощью Azure PowerShell локально. Затем с помощью Docker CLI вы получите образ контейнера hello-world, прикрепите метку к образу контейнера hello-world для создания нового образа контейнера, загрузите новый образ контейнера в реестр контейнеров, удалите локальный образ контейнера и, наконец, извлеките и запустите образ из вашего реестра.

Предпосылки

Примечание

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать, ознакомьтесь с разделом Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. статью Миграция Azure PowerShell с AzureRM на Az.

Для этого быстрого старта требуется модуль Azure PowerShell. Выполните команду Get-Module -ListAvailable Az , чтобы определить установленную версию. Если вам необходимо выполнить установку или обновление, см. статью об установке модуля Azure PowerShell.

Также необходим локально установленный модуль Docker. Docker предоставляет пакеты для систем macOS, Windows и Linux .

Так как в службе Azure Cloud Shell нет всех необходимых компонентов Docker (демон dockerd), ее нельзя использовать в этом быстром начале.

Вход в Azure

Войдите в подписку Azure с помощью команды Connect-AzAccount и следуйте инструкциям на экране.

Connect-AzAccount

Создать группу ресурсов

После проверки подлинности в Azure создайте группу ресурсов с New-AzResourceGroup. Группа ресурсов — это логический контейнер, в котором развертываются ресурсы Azure и управляют ими.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

Создание реестра контейнеров

Затем создайте реестр контейнеров в новой группе ресурсов с помощью команды New-AzContainerRegistry .

Имя реестра должно быть уникальным в Azure и содержать 5–50 буквенно-цифровых символов. В следующем примере создается реестр с именем mycontainerregistry. Замените mycontainerregistry в следующей команде, а затем запустите его, чтобы создать реестр:

$registry = New-AzContainerRegistry -ResourceGroupName "myResourceGroup" -Name "mycontainerregistry" -EnableAdminUser -Sku Standard -Location EastUS

Совет

В этом кратком руководстве описано, как создать реестр уровня "Стандартный" , который достаточно для большинства рабочих процессов реестра контейнеров Azure. Выберите другие уровни, чтобы повысить пропускную способность хранилища и образов, а также получить такие возможности, как подключение с использованием частной конечной точки. Дополнительные сведения об уровнях служб (SKU) см. в статье Уровни служб реестра контейнеров.

Вход в раздел реестра

Перед отправкой и извлечением образов контейнеров необходимо войти в реестр с помощью командлета Connect-AzContainerRegistry . В следующем примере используются те же учетные данные, которые вы выполнили при проверке подлинности в Azure с помощью командлета Connect-AzAccount .

Примечание

В следующем примере значением $registry.Name является имя ресурса, а не полное имя реестра.

Connect-AzContainerRegistry -Name $registry.Name

По завершении команда возвращает Login Succeeded.

Отправка образа в реестр

Чтобы отправить образ в реестр контейнеров Azure, необходимо сначала создать образ. Если у вас еще нет образов локального контейнера, используйте следующую команду docker pull, чтобы извлечь существующий общедоступный образ. Для этого примера извлеките образ hello-world из Реестра контейнеров Майкрософт.

docker pull mcr.microsoft.com/hello-world

Прежде чем отправить образ в реестр, необходимо пометить его с помощью тега docker с полным именем сервера входа в реестр.

  • Формат имени сервера входа для защищенных реестров доменных имен (DNL) с уникальным хэшом DNS-имени включен mycontainerregistry-abc123.azurecr.io.
  • Формат имени сервера входа для реестров, созданных с параметром DNL, это Unsecure.

Например, если реестр был создан с областью Tenant Reuse DNL, имя сервера для входа может содержать хэш, как в DNS-имени mycontainerregistry-abc123.azurecr.io. Если реестр был создан с параметром Unsecure DNL, сервер входа будет выглядеть mycontainerregistry.azurecr.io без хэша.

Дополнительные сведения о параметрах DNL при создании реестра и последствиях DNS-имени см. в кратком руководстве по созданию реестра на портале.

Пример. Добавление тегов к изображению перед отправкой

Промаркируйте изображение, используя команду docker tag, с помощью сервера входа в ваш реестр.

Тегирование изображения для реестра, не входящего в DNL.

docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1

Тегирование изображения в реестре с поддержкой DNL:

docker tag mcr.microsoft.com/hello-world mycontainerregistry-abc123.azurecr.io/hello-world:v1

Наконец, воспользуйтесь командой docker push, чтобы отправить образ в реестр. Замените <login-server> на имя сервера входа для вашего экземпляра реестра. В этом примере создается репозиторий hello-world с образом hello-world:v1.

docker push <login-server>/hello-world:v1

После отправки образа в реестр контейнеров удалите образ hello-world:v1 из локальной среды Docker. (Обратите внимание, что эта команда docker rmi не удаляет образ из репозитория hello-world в реестре контейнеров Azure.)

docker rmi <login-server>/hello-world:v1

Запуск образа из реестра

Теперь вы можете извлекать и запускать образ контейнера hello-world:v1 из реестра контейнеров с помощью команды docker run:

docker run <login-server>/hello-world:v1  

Пример выходных данных:

Unable to find image 'mycontainerregistry.azurecr.io/hello-world:v1' locally
v1: Pulling from hello-world
Digest: sha256:662dd8e65ef7ccf13f417962c2f77567d3b132f12c95909de6c85ac3c326a345
Status: Downloaded newer image for mycontainerregistry.azurecr.io/hello-world:v1

Hello from Docker!
This message shows that your installation appears to be working correctly.

[...]

Очистите ресурсы

После завершения работы с ресурсами, созданными в этом кратком руководстве, используйте команду Remove-AzResourceGroup , чтобы удалить группу ресурсов, реестр контейнеров и образы контейнеров, хранящиеся там:

Remove-AzResourceGroup -Name myResourceGroup

Дальнейшие шаги

В этом кратком руководстве вы создали экземпляр реестра контейнеров Azure, используя Azure PowerShell локально, извлекли образ контейнера hello-world, пометили образ hello-world, чтобы создать новый образ контейнера, отправили новый образ контейнера в реестр контейнеров, удалили локальный образ контейнера и, наконец, извлекли и запустили образ из своего реестра. Чтобы ознакомиться с Реестром контейнеров Azure более подробно, перейдите к руководствам по Реестру контейнеров Azure (ACR).