返回

云原生 Docker 部署 Django & MySQL 项目教程

后端

在云原生环境中使用 Docker 部署 Django & MySQL 项目

准备工作

安装 Docker

前往 Docker 官网获取适用于您操作系统的安装指南。

添加 Docker 中国官方镜像加速器

sudo mkdir -p /etc/docker/
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl restart docker

创建 Docker 镜像

创建 Django 镜像

mkdir django-project
cd django-project
django-admin startproject mysite

创建 MySQL 镜像

mkdir mysql-data
docker run --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -v mysql-data:/var/lib/mysql mysql:5.7

将 Django 和 MySQL 镜像推送到 Docker Hub

docker build -t my-django-image .
docker push my-django-image
docker tag mysql:5.7 my-mysql-image
docker push my-mysql-image

部署 Django & MySQL 项目

创建 Docker Compose 文件

touch docker-compose.yml

添加以下内容:

version: '3'

services:
  django:
    image: my-django-image
    ports:
      - "8000:8000"
    depends_on:
      - mysql

  mysql:
    image: my-mysql-image
    volumes:
      - mysql-data:/var/lib/mysql

运行 Docker Compose

docker-compose up -d

测试项目

访问 Django 应用

在浏览器中访问 http://localhost:8000

连接 MySQL 数据库

mysql -h localhost -P 3306 -u root -p

输入密码后,即可使用 MySQL 命令。

结语

本教程指导您使用 Docker 容器技术在云原生环境中部署和运行 Django & MySQL 项目。掌握 Docker 技术将为您的项目带来以下优势:

  • 容器化部署,实现应用程序的可移植性和可伸缩性
  • 数据库和应用程序的分离,提高模块性和安全性
  • 统一的开发和部署环境,简化维护和更新

常见问题解答

Q1:我如何更改 Django 应用程序的端口?

A1:在 Docker Compose 文件中,修改 ports 字段以指定新的端口。

Q2:如何访问 MySQL 数据库 shell?

A2:运行 docker-compose exec mysql bash

Q3:我该如何持久化 MySQL 数据?

A3:在 Docker Compose 文件中,使用 volumes 字段将持久性存储挂载到 MySQL 容器中。

Q4:如何更新 Django 应用程序?

A4:在 django 目录中进行更改,然后运行 docker-compose up -d --build

Q5:如何监控应用程序的运行状况?

A5:使用 Docker Compose 命令 docker-compose ps 或外部工具,例如 Prometheus 或 Grafana。