🌟 课程目标
- 掌握Docker容器化部署
- 配置Nginx反向代理与负载均衡
- 实现阿里云ECS部署
- 了解Heroku云平台部署
一、Docker基础(集装箱革命)
1.1 Docker核心概念
1.2 与传统部署对比:
维度 |
传统部署 |
Docker部署 |
环境一致性 |
依赖系统环境 |
镜像打包全部依赖 |
资源占用 |
需要完整OS |
共享主机内核 |
启动速度 |
分钟级 |
秒级 |
二、Docker化全栈项目(打包生产线)
2.1 Flask后端Dockerfile
# 基础镜像
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 复制项目文件
COPY . .
# 暴露端口
EXPOSE 5000
# 启动命令
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]
2.2 Vue前端Dockerfile
# 构建阶段
FROM node:16 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# 生产镜像
FROM nginx:alpine
COPY --from=build-stage /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
三、Docker Compose编排(物流调度中心)
3.1 docker-compose.yml
version: '3.8'
services:
backend:
build: ./backend
ports:
- "5000:5000"
environment:
- DATABASE_URL=postgres://user:pass@db:5432/mydb
depends_on:
- db
frontend:
build: ./frontend
ports:
- "80:80"