如何在 Docker 容器中部署 Django 应用

阅读时长 5 分钟读完

如何在 Docker 容器中部署 Django 应用

Docker 是一个开放源码的同级容器化引擎,允许开发者构建像 Docker 镜像这样的容器,Docker 镜像可以允许在任何 Docker 主机上运行,而不会有任何运行时依赖性问题。Docker 在部署应用方面非常方便,特别是对于 Django 应用,Docker 支持快速部署、持久性存储和灵活性等方面都表现出色。下面我们将介绍如何使用 Docker 部署 Django 应用。

  1. 安装 Docker

首先,你需要在你的机器上安装 Docker。可以从官方网站下载 Docker 安装包或者使用你所使用的操作系统自带的软件包管理器来安装 Docker 。

  1. 创建 Dockerfile

Dockerfile 是创建镜像的重要文件。从本地构建镜像可以在开发阶段带来便利。在项目根目录里,新建一个名为 Dockerfile 的空文件,输入以下内容:

-- -------------------- ---- -------
---- ---------------

--- ------------------

------- -----

---- ---------------- -

--- --- ------- -- ----------------

---- - -

--- - --------- ------------ ------------ -------------- -

这个 Dockerfile 并不复杂,它生成一个基于 Python 3.9 的最小镜像,安装了我们在 requirements.txt 中定义的 Django 要求并将从本地环境复制所有应用程序代码。它还将在容器中运行 Django 服务器。

  1. 创建 requirements.txt 文件

现在,我们需要为我们的 Django 应用程序创建 requirements.txt 文件。该文件定义了我们需要安装的 Python 包,以及它们的版本。在项目根目录中创建名为 requirements.txt 的文件,添加以下内容:

这里我们包括了 Django、PostgreSQL 包 psycopg2-binary,以及生产级 Python WSGI 应用服务器 Gunicorn。

  1. 构建 Docker 镜像

我们的 Dockerfile 和 requirements.txt 文件已经准备好了,现在我们可以构建 Docker 容器了。在项目根目录下运行以下命令:

你将会看到 Docker 开始运行构建过程,拉取依赖项,生成所需环境并安装 Django 应用程序。该过程需要几分钟时间,取决于您的机器性能和与互联网连接的快慢。

  1. 启动 Docker 容器

现在,我们已经构建出容器了,我们需要在容器内启动 Django 应用程序。在项目目录下运行以下命令:

这个命令将在本地的 8000 端口启动 Django 服务器。你可以在本地浏览器中访问 http://localhost:8000 查看 Django 网站。

  1. 使用 Docker Compose 启动容器

Docker Compose 是 Docker 内置的编排工具,它允许您定义和运行具有多个容器的 Docker 应用程序。在项目根目录下创建一个名为 docker-compose.yml 的文件,输入以下内容:

-- -------------------- ---- -------
-------- ---

---------
  ----
    --------------- -------------------
    ------ -
    -------- ---- -- ------- --------- ------- --------- -- ------ --------- --------- -------------
    --------
      - -------
    ------
      - -----------
    -----------
      - --
  ---
    --------------- ------------------
    ------ --------
    --------
      - ---------------------------------------
    ------------
      - ---------------------------
      - -----------------------------
      - ---------------------------------

--------
  --------------

这个 docker-compose.yml 文件定义了两个服务,一个是 web 服务,另一个是数据库(db)。在定义的 web 服务中,我们需要设置 container_name、构建 Docker 镜像、指定运行命令、给容器中的代码路径 /code 制定本地路径映射以便在容器内部修改代码、制定端口映射、指定依赖的数据库服务为 db。在数据库服务中,我们设置了容器名称、使用了 PostgreSQL 官方镜像、持久化数据挂载、数据库超级用户、数据库名称等。

现在,我们可以在项目目录下,运行以下命令启动应用程序:

这会运行容器并在后台运行。

  1. 查看应用日志

使用 Docker Compose 运行时,您可以轻松获取应用程序标准输出和标准错误的日志。只需要运行以下命令:

-t 参数添加时间戳,-f 以 tail -f 的方式显示日志。

总结

在以上步骤中,我们通过 Docker 构建了 Django 应用程序所需的环境,并启动了它。当你在开发过程中需要部署 Django 应用时,使用 Docker 构建镜像和启动容器这些步骤将可以更加简单和规范。如果你想了解更多关于 Docker 和 Django 的详细文档,请参考:https://docs.docker.com/samples/django/。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6517e6a995b1f8cacd00dc07

纠错
反馈