参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

将 Django 镜像推送到注册表

在本教程中,您将本地构建的 Python Django 应用程序容器镜像部署到 Azure 容器注册表 (ACR) 或 Docker Hub。

创建容器注册表

创建容器注册表以推送镜像。有关如何进行身份验证和使用注册表的更多信息,请参阅使用容器注册表

确保您创建的注册表端点在 VS Code 的容器浏览器中的注册表下可见

Container Explorer in VS Code showing registries

Django 应用程序设置

  1. 在您的 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。这将需要您再次重建、推送和重新部署镜像。

  2. 命令面板⇧⌘P(Windows、Linux Ctrl+Shift+P)上,选择容器镜像:构建镜像...以使用新设置重建镜像。

    提示:如果您想在多个托管服务上测试生产环境中的镜像,您只需在 ALLOWED_HOSTS 中输入"*"

将镜像推送到注册表

声明ALLOWED_HOSTS后,下一步是将 Django 镜像推送到容器注册表

  1. 打开命令面板⇧⌘P(Windows、Linux Ctrl+Shift+P)并选择容器镜像:推送...

  2. 选择您刚刚构建的镜像以推送到注册表。

  3. 选择您创建的注册表以推送到。这将有助于正确标记镜像。

    Select a registry

  4. 一旦选择了注册表和完整的标签,镜像将被推送。上传进度将显示在终端窗口中。

  5. 完成后,展开容器浏览器中的注册表 > Azure(或DockerHub)节点,然后展开注册表和镜像名称以查看确切的镜像。(您可能需要刷新容器浏览器。)

    The built app image in the Azure Container Registry

提示:第一次推送镜像时,您会看到 VS Code 上传构成镜像的每个层。然而,随后的推送操作将只更新从第一个已更改的层开始的层。由于您的应用程序代码通常是变化最频繁的部分,这就是为什么应用程序代码通常在 Dockerfile 的最后几行中复制的原因。要查看此内部循环的实际操作,请对您的代码进行少量更改,重建镜像,然后再次推送到注册表。

现在您已将镜像推送到注册表,您就可以将其部署到任何支持容器的云服务。有关部署到 Azure 应用服务的详细信息,请参阅部署容器