---
title: "Docker容器化部署"
type: concept
tags: [docker, deployment, containerization]
sources: [tiktok-pm-python-django-project.md]
last_updated: 2026-04-14
---

## Definition
Docker容器化部署通过docker-compose编排多个容器，实现开发生产环境一致性。

## Architecture

### Services
- **web**：Django + Gunicorn应用
- **nginx**：反向代理和静态文件服务
- **MySQL**：外部数据库（也可容器化）

### docker-compose.yml
```yaml
services:
  web:
    build: .
    command: gunicorn tiktok_pm_project.wsgi:application
    volumes:
      - ./data:/app/data
    env_file:
      - .env

  worker:
    build: .
    command: python manage.py qcluster

  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - web
```

## Deployment Workflow
1. 拉取最新代码：git pull origin main
2. 重建容器：docker compose up --build -d
3. 执行迁移：docker compose exec web python manage.py migrate
4. 创建超级用户：docker compose exec web python manage.py createsuperuser

## Static Files
使用collectstatic收集静态文件，Nginx提供/static/路由。

## Connections
- [[Docker容器化部署]] ← contains ← [[Django]]
- [[Docker容器化部署]] ← contains ← [[Gunicorn]]
- [[Docker容器化部署]] ← contains ← [[Nginx]]
- [[Docker容器化部署]] ← uses ← [[MySQL]]
