使用 Docker 部署 Django+PostgreSQL 应用

阅读时长 4 分钟读完

Docker 是一种流行的容器技术,通过 Docker 可以将应用程序打包成容器并进行部署。Docker 容器比虚拟机更轻量,启动、停止更快、更容易管理。本篇文章将介绍如何使用 Docker 部署 Django+PostgreSQL 应用,并说明其中的细节和指导意义。

安装 Docker

首先需要安装 Docker,Docker 的安装方式因操作系统而异,在这里以 Ubuntu 为例。

安装完成后可以通过 docker --version 命令来验证 Docker 是否成功安装。

准备 Django+PostgreSQL 代码

本文以 Django+PostgreSQL 为例进行部署。首先需要准备好 Django+PostgreSQL 的开发代码。

以 Django 为例,创建一个名为 webapp 的 Django 项目,然后将项目代码放到一个名为 webapp 的文件夹中。在 webapp 文件夹中创建名为 requirements.txt 的文件,记录 Django 和 psycopg2-binary 的依赖:

在 Dockerfile 所在的目录中创建一个名为 docker-entrypoint.sh 的文件,并将它赋予可执行权限(chmod +x docker-entrypoint.sh)。scripts 文件夹用于存储各种 shell 脚本。

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

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

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

------ --------- -------
------ --------- --------- ------------
展开代码

编写 Dockerfile

在 Django 项目根目录创建 Dockerfile 文件,内容如下:

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

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

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

---- - -----

--- ------------- -------------------------------
展开代码

该 Dockerfile 以 Python 3.8 为基础镜像,指定了工作目录为 /app。将 requirements.txt 复制到容器的 /app 目录,使用 pip 安装 requirements.txt 中指定的依赖。将当前目录下的所有文件复制到容器中,包括 Django 项目代码。最后通过 CMD 在容器启动时执行 scripts/docker-entrypoint.sh 脚本文件。

编写 docker-compose.yml

docker-compose.yml 告诉 Docker 如何启动和配置容器,以及它们之间如何通信。

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

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

  ---
    ------ --------
展开代码

在 docker-compose.yml 中定义了两个服务,分别是 web 和 db。

web 服务使用 Dockerfile 构建镜像,使用了由 db 服务提供的数据库。将容器内部的 8000 端口映射到本地的 8000 端口。

db 服务使用官方的 PostgreSQL 镜像。

启动容器

使用以下命令启动容器:

使用浏览器访问 http://127.0.0.1:8000,如果出现 Django 的默认欢迎页面,说明 Django+PostgreSQL 应用成功部署。

总结

通过本文,我们了解了如何使用 Docker 部署 Django+PostgreSQL 应用。通过编写 Dockerfile 和 docker-compose.yml 文件,将 Django 项目打包成 Docker 容器并启动,让应用程序在不同的环境中运行。

在实际项目中,使用 Docker 部署应用可以提高开发效率、减少运维成本。Docker 容器化应用程序可以帮助应用在各种环境中运行,让开发和部署更加简单和可靠。

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

纠错
反馈

纠错反馈