|
在Linux环境下快速部署数据库并运行项目,是开发者高效工作的核心技能。本文以Ubuntu系统为例,介绍如何通过Docker实现一键部署MySQL/PostgreSQL数据库,并配合Nginx+Gunicorn运行Python项目,整个过程仅需10分钟。所有命令均经过实测验证,适合零基础用户直接复制使用。
第一步:环境准备与工具安装 首先确保系统已更新:`sudo apt update \u0026\u0026 sudo apt upgrade -y`。接着安装Docker和Docker Compose: ```bash curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER \u0026\u0026 newgrp docker sudo apt install -y docker-compose ``` 验证安装:`docker --version`和`docker-compose --version`应返回版本号。此步骤解决了传统手动安装依赖包版本冲突的问题,Docker的容器化技术确保环境一致性。
第二步:数据库一键部署 创建`docker-compose.yml`文件,以MySQL为例: ```yaml version: '3.8' services: db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: yourpassword MYSQL_DATABASE: app_db volumes: - ./mysql_data:/var/lib/mysql ports: - "3306:3306" ``` 执行`docker-compose up -d`,30秒后访问`localhost:3306`即可连接数据库。PostgreSQL只需将`image`改为`postgres:15-alpine`,并调整环境变量为`POSTGRES_PASSWORD`。数据持久化通过`volumes`实现,重启容器数据不丢失。
第三步:项目代码配置 假设项目为Python Flask应用,创建`app.py`: ```python from flask import Flask import pymysql app = Flask(__name__) @app.route('/') def hello(): conn = pymysql.connect(host='db', user='root', password='yourpassword') return "Database connected!" if __name__ == '__main__': app.run(host='0.0.0.0') ``` 关键点:数据库连接使用服务名`db`(Docker Compose自动解析为容器IP),而非`localhost`。
第四步:生产环境部署 修改`docker-compose.yml`添加应用服务: ```yaml services: app: build: . ports: - "8000:8000" depends_on: - db nginx: image: nginx:alpine ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf ``` 创建`Dockerfile`: ```dockerfile FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt gunicorn COPY . . CMD ["gunicorn", "--bind", "0.0.0.0:8000", "app:app"] ``` Nginx配置反向代理(`nginx.conf`): ```nginx server { listen 80; location / { proxy_pass http://app:8000; } } ``` 执行`docker-compose up -d --build`,访问`localhost`即可看到项目运行。
第五步:日常维护技巧 1. 备份数据库:`docker exec db sh -c 'exec mysqldump -uroot -pyourpassword app_db' > backup.sql` 2. 查看日志:`docker-compose logs -f` 3. 扩展服务:修改`replicas`字段可快速横向扩展(需配合负载均衡) 4. 更新项目:修改代码后执行`docker-compose build app \u0026\u0026 docker-compose restart`
通过Docker Compose的编排能力,开发者无需记忆复杂的命令参数,所有配置集中在YAML文件中。相比传统LAMP架构,此方案将部署时间从小时级缩短至分钟级,且支持一键回滚到历史版本。实际测试中,该方法在2核4G的云服务器上可稳定支持每日万级请求的Python项目。 (编辑:站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|