将 Django 镜像推送到注册表
在本教程中,您将获取本地构建的 Python Django 应用程序的容器镜像,并将其部署到 Azure Container Registry (ACR) 或 Docker Hub。
创建容器注册表
创建一个容器注册表以推送镜像。有关如何进行身份验证以及如何使用注册表的详细信息,请参阅使用容器注册表。
确保您创建的注册表终结点在 VS Code 的 Docker 资源管理器的 注册表 下可见
Django 应用的设置
-
在 Django 项目的
settings.py
文件中,修改ALLOWED_HOSTS
列表以包含您打算部署应用程序的根 URL。例如,以下代码假定部署到名为“vsdocs-django-sample-container”的 Azure 应用服务 (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)) 中,选择 Docker: 构建镜像 以使用新设置重新构建镜像。
提示:如果您想在多个托管服务上测试您的生产环境镜像,您可以简单地在 ALLOWED_HOSTS 中输入
"*"
。
将镜像推送到注册表
声明 ALLOWED_HOSTS
后,下一步是将您的 Django 镜像推送到容器注册表
-
打开 命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并选择 Docker: 推送。
-
选择您刚刚构建的镜像以推送到注册表。
-
选择您创建的注册表以推送到其中。这将有助于正确标记镜像。
-
一旦选择了注册表和完整标签,镜像将被推送。上传进度将显示在 终端 窗口中。
-
完成后,展开 注册表 > Azure (或 DockerHub) 节点在 Docker 资源管理器中,然后展开注册表和镜像名称以查看确切的镜像。(您可能需要刷新 Docker 资源管理器。)
提示:首次推送镜像时,您会看到 VS Code 上传镜像的每个层。但是,后续的推送操作将仅更新从第一个已更改的层开始的层。由于您的应用程序代码通常是更改最频繁的内容,因此这通常是为什么应用程序代码在 Dockerfile 的最后几行中复制的原因。要查看此内部循环的实际效果,请对您的代码进行少量更改,重新构建镜像,然后再次推送到注册表。
现在您已将镜像推送到注册表,您就可以将其部署到任何支持容器的云服务。有关部署到 Azure 应用服务的详细信息,请参阅部署容器。