将 Django 镜像推送到注册表
在本教程中,你将使用在本地构建的 Python Django 应用的容器镜像,并将其部署到 Azure 容器注册表 (ACR) 或 Docker Hub。
创建容器注册表
创建一个用于推送镜像的容器注册表。有关如何进行身份验证以及如何使用注册表的详细信息,请参阅使用容器注册表。
确保你创建的注册表终结点在 VS Code 的“容器资源管理器”中的“注册表”下可见

Django 应用设置
-
在 Django 项目的
settings.py文件中,修改ALLOWED_HOSTS列表,以包含你打算部署应用的根 URL。例如,以下代码假设部署到名为 “vsdocs-django-sample-container” 的 Azure App Service (azurewebsites.net)ALLOWED_HOSTS = [ # Example host name only; customize to your specific host "vsdocs-django-sample-container.azurewebsites.net" ]如果没有此条目,部署后你将看到 “DisallowedHost” 消息,指示你将网站域添加到
ALLOWED_HOSTS。这将需要你再次重新构建、推送并重新部署镜像。 -
在“命令面板”(⇧⌘P (Windows, Linux Ctrl+Shift+P))上,选择“容器镜像: 构建镜像...”以使用新设置重新构建镜像。
提示:如果你想在多个托管服务上的生产环境中测试镜像,只需在 ALLOWED_HOSTS 中输入
"*"即可。
将镜像推送到注册表
声明 ALLOWED_HOSTS 后,下一步就是将 Django 镜像推送到容器注册表
-
打开“命令面板”(⇧⌘P (Windows, Linux Ctrl+Shift+P))并选择“容器镜像: 推送...”。
-
选择你刚刚构建的要推送到注册表的镜像。
-
选择你创建的要推送到的注册表。这将有助于正确标记镜像。

-
选择注册表和完整标签后,镜像将被推送。上传进度将显示在“终端”窗口中。
-
完成后,展开“容器资源管理器”中的“注册表” > “Azure”(或 “DockerHub”)节点,然后展开注册表和镜像名称以查看具体的镜像。(你可能需要刷新“容器资源管理器”。)

提示:第一次推送镜像时,你会看到 VS Code 上传组成镜像的每个层。但是,随后的推送操作将仅更新从第一个发生更改的层开始的各层。由于应用代码通常是更改最频繁的部分,这通常就是为什么应用代码会被复制在 Dockerfile 的最后几行中。要查看此内部循环的效果,请对代码进行细微更改,重新构建镜像,然后再次推送到注册表。
现在你已将镜像推送到注册表,可以将其部署到任何支持容器的云服务。有关部署到 Azure App Service 的详细信息,请参阅部署容器。