Docker 是一种流行的容器技术,通过 Docker 可以将应用程序打包成容器并进行部署。Docker 容器比虚拟机更轻量,启动、停止更快、更容易管理。本篇文章将介绍如何使用 Docker 部署 Django+PostgreSQL 应用,并说明其中的细节和指导意义。
安装 Docker
首先需要安装 Docker,Docker 的安装方式因操作系统而异,在这里以 Ubuntu 为例。
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
安装完成后可以通过 docker --version
命令来验证 Docker 是否成功安装。
准备 Django+PostgreSQL 代码
本文以 Django+PostgreSQL 为例进行部署。首先需要准备好 Django+PostgreSQL 的开发代码。
以 Django 为例,创建一个名为 webapp 的 Django 项目,然后将项目代码放到一个名为 webapp 的文件夹中。在 webapp 文件夹中创建名为 requirements.txt 的文件,记录 Django 和 psycopg2-binary 的依赖:
Django==3.1.5 psycopg2-binary>=2.8.6
在 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 镜像。
启动容器
使用以下命令启动容器:
docker-compose up
使用浏览器访问 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