尝试以扩展 VS Code 中的代理模式!

将 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 应用服务的详细信息,请参阅部署容器