向 Azure 容器注册表推送容器映像
在本单元中,你将使用 Azure 容器注册表服务将容器映像推送到 Azure 容器注册表。 使用 Azure 容器注册表,可以针对所有类型的容器部署在专用注册表中生成、存储和管理容器映像和项目。 将 Azure 容器注册表用于现有的容器开发和部署管道。
注释
如果会话已空闲,或者正在另一时间点或从另一个 CLI 执行此步骤,则可能需要使用以下命令重新初始化环境变量并重新进行身份验证:
还原安装程序中使用的资源变量值。 将下面的 <your-subscription-ID> 替换为你用于此模块的订阅 ID。 如果登录提供订阅选择器,请选择同一订阅。 一次运行一个身份验证命令。 在 az account show 之后,确认当前订阅与设置匹配,然后再继续。 如果命令失败,请停止并解决错误。
export AZ_RESOURCE_GROUP=java-containerization-demo-rg
export AZ_CONTAINER_REGISTRY=<your-container-registry>
export AZ_KUBERNETES_CLUSTER=java-containerization-demo-aks
export AZ_LOCATION=<your-Azure-region>
export AZ_KUBERNETES_CLUSTER_DNS_PREFIX=<your-unique-DNS-prefix-to-access-your-AKS-cluster>
az login
az account set --subscription "<your-subscription-ID>"
az account show --output table
az acr login --name "$AZ_CONTAINER_REGISTRY"
推送容器映像
可以将新生成的容器映像推送到 Azure 容器注册表。 这样,你的容器映像与你所有的 Azure 资源(例如 Azure Kubernetes 服务 [AKS] 群集)密切相关。 稍后,将 AKS 配置为从注册表拉取 flightbookingsystemsample 映像。 若要将容器映像推送到注册表,请执行以下步骤:
使用以下命令登录到 Azure 容器注册表(如果尚未登录):
az acr login在标记或推送之前检查实际的本地映像:
docker image inspect flightbookingsystemsample:latest \ --format '{{.Os}}/{{.Architecture}}'对于此路径,结果必须为
linux/amd64. 如果不同,请按照上一单元中所述,使用--platform linux/amd64重新构建并运行映像,然后再继续。 标记和推送保留映像平台;它们不会更改其体系结构。使用以下命令使用 Azure 容器注册表标记以前生成的容器映像:
docker tag flightbookingsystemsample $AZ_CONTAINER_REGISTRY.azurecr.io/flightbookingsystemsample使用以下命令将容器映像推送到 Azure 容器注册表:
docker push $AZ_CONTAINER_REGISTRY.azurecr.io/flightbookingsystemsample推送完成后,可以使用以下命令查看新推送映像的 Azure 容器注册表映像元数据:
az acr repository show \ --name $AZ_CONTAINER_REGISTRY \ --image flightbookingsystemsample:latest
以下历史元数据仅作示例。 生成并推送更新后的映像后,映像摘要和时间戳可能会有所不同:
{
"changeableAttributes": {
"deleteEnabled": true,
"listEnabled": true,
"readEnabled": true,
"writeEnabled": true
},
"createdTime": "2024-11-15T12:23:55.5624474Z",
"digest": "sha256:13851640a3****************************************f7f1e482c6eaa825",
"lastUpdateTime": "2024-11-15T12:23:55.5624474Z",
"name": "latest",
"signed": false
}
容器映像现在位于 Azure 容器注册表中,可供 Azure 服务(如 AKS)进行部署。