Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Реестр контейнеров 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 с помощью команды 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, с помощью сервера входа в ваш реестр.
docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1
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).