从零开始:手把手教你用Docker容器化部署应用
在当今云原生时代,Docker已成为应用部署的标准工具。本文将通过七个步骤详解Docker部署全流程,并分享五个提升部署效率的实用技巧,助你快速掌握这项必备技能。
一、部署前的关键准备工作
1. 环境检查清单:
- 安装Docker Engine(版本建议18.06+)
- 确认Linux内核版本(3.10+)
- 分配至少2GB可用磁盘空间
2. 项目结构调整建议:
myapp/ ├── Dockerfile ├── requirements.txt ├── app/ │ ├── main.py │ └── config.py └── data/
二、详细部署操作指南
步骤1:编写高效的Dockerfile
# 使用官方Python基础镜像 FROM python:3.9-slim # 设置工作目录 WORKDIR /app # 先安装依赖(利用Docker层缓存) COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 再拷贝应用代码 COPY . . # 暴露端口 EXPOSE 8000 # 定义启动命令 CMD ["gunicorn", "--bind", "0.0.0.0:8000", "app.main:app"]
步骤2:构建优化镜像
使用.dockerignore文件排除不必要的文件:
*.pyc __pycache__ .env *.git
多阶段构建示例(适用于生产环境):
# 构建阶段 FROM python:3.9 as builder RUN pip install --user -r requirements.txt # 运行阶段 FROM python:3.9-slim COPY --from=builder /root/.local /root/.local ENV PATH=/root/.local/bin:$PATH
三、专家级实用技巧
1. 容器编排最佳实践
使用docker-compose.yml管理多容器应用:
version: '3.8'
services:
web:
build: .
ports:
- "8000:8000"
environment:
- DEBUG=0
redis:
image: "redis:alpine"
2. 性能监控方案
实时监控容器资源使用情况:
docker stats docker container top [CONTAINER_ID]
四、部署后的关键操作
- 日志查看:
docker logs -f [CONTAINER_ID] - 版本回滚:
docker rollback [SERVICE_NAME] - 自动重启策略配置:
--restart unless-stopped
常见问题解答
Q:如何处理容器数据持久化?
A:推荐三种方案:① 使用-v参数挂载主机目录 ② 创建数据卷docker volume create ③ 使用云存储插件
