云原生 Docker 部署 Django & MySQL 项目教程
2022-12-24 20:46:24
在云原生环境中使用 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。