使用 Docker CLI 将你的第一个映像推送到 Azure 容器注册表
Azure 容器注册表可存储和管理专用容器映像和其他项目,类似于 Docker Hub 存储公共 Docker 容器映像的方式。 可以使用 Docker 命令行接口 (Docker CLI) 对容器注册表执行登录、推送、拉取和其他容器映像操作。
在以下步骤中,你将下载一个公共 Nginx 映像,为你的专用 Azure 容器注册表标记该映像,将它推送到你的注册表,然后从注册表中拉取它。
先决条件
- Azure 容器注册表 - 在 Azure 订阅中创建容器注册表。 例如,使用 Azure 门户、Azure CLI 或 Azure PowerShell。
- Docker CLI - 还必须在本地安装 Docker。 Docker 提供的包可在任何 macOS、Windows 或 Linux 系统上轻松配置 Docker。
登录到注册表
可通过多种方式验证专用容器注册表。
在命令行中操作时,建议的方法是使用 Azure CLI 命令 az acr login。 例如,要访问名为 myregistry
的注册表,请登录 Azure CLI,然后向注册表进行身份验证:
注意
在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud
来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud
。
az cloud set -n AzureChinaCloud
az login
# az cloud set -n AzureCloud //means return to Public Azure.
az acr login --name myregistry
也可以使用 docker login 登录。 例如,你可能在自动化方案中向注册表分配了服务主体。 运行以下命令时,收到提示后,请以交互方式提供服务主体 appID(用户名)和密码。 有关管理登录凭据的最佳做法,请参阅 docker login 命令参考:
docker login myregistry.azurecr.cn
完成后,这两个命令将返回 Login Succeeded
。
注意
- 你可能需要将 Visual Studio Code 与 Docker 扩展配合使用,以更快、更方便地登录。
提示
使用 docker login azure --cloud-name AzureChinaCloud
以及标记要推送到注册表的映像时,请始终指定完全限定的注册表名称(全部小写)。 在本文的示例中,完全限定的名称为 myregistry.azurecr.cn。
拉取一个公共 Nginx 映像
首次,将一个公共 Nginx 映像拉取到本地计算机。 此示例提取 官方 Nginx 图像。
docker pull nginx
在本地运行容器
执行以下 docker run 命令,以交互方式在端口 8080 上启动 Nginx 容器的本地实例 (-it
)。 --rm
参数指定在停止容器时应将其删除。
docker run -it --rm -p 8080:80 nginx
浏览到 http://localhost:8080
,查看由正在运行的容器中的 Nginx 提供服务的默认网页。 应看到类似于下面的页面:
由于已使用 -it
以交互方式启动了容器,因此在浏览器中导航到该容器后,可在命令行中查看 Nginx 服务器的输出。
若要停止并删除容器,请按 Control
+C
。
创建映像的别名
运行 docker tag,使用注册表的完全限定路径创建映像的别名。 此示例指定了 samples
命名空间,以免注册表根目录中出现混乱。
docker tag nginx myregistry.azurecr.cn/samples/nginx
有关使用命名空间进行标记的详细信息,请参阅 Azure 容器注册表的最佳做法的存储库命名空间部分。
将映像推送到注册表
使用专用注册表的完全限定路径标记映像后,可以使用 docker push 将其推送到注册表:
docker push myregistry.azurecr.cn/samples/nginx
从注册表中提取映像
使用 docker pull 命令从注册表提取映像:
docker pull myregistry.azurecr.cn/samples/nginx
启动 Nginx 容器
使用 docker run 命令运行已从注册表提取的映像:
docker run -it --rm -p 8080:80 myregistry.azurecr.cn/samples/nginx
浏览到 http://localhost:8080
以查看正在运行的容器。
若要停止并删除容器,请按 Control
+C
。
删除映像(可选)
如果不再需要 Nginx 映像,可以使用 docker rmi 命令在本地将其删除。
docker rmi myregistry.azurecr.cn/samples/nginx
若要从 Azure 容器注册表中删除映像,可以使用 Azure CLI 命令az acr repository delete。 例如,以下命令删除 samples/nginx:latest
标记引用的清单、所有唯一的层数据以及引用此清单的其他所有标记。
az acr repository delete --name myregistry --image samples/nginx:latest
建议
你可在此处找到有关身份验证选项的详细信息。
后续步骤
了解基础知识后,便可以开始使用注册表了! 例如,将容器映像从注册表部署到:
可以选择安装适用于 Visual Studio Code 的 Docker 扩展以及适用于 Azure 容器注册表的 Azure 帐户扩展。 通过 Azure 容器注册表拉取和推送映像,或者运行 ACR 任务,这一切都可以在 Visual Studio Code 中进行。