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