插件窝 干货文章 如何将项目部署到 Docker 容器中

如何将项目部署到 Docker 容器中

Docker 项目 myapp 容器 304    来源:    2025-04-29

将项目部署到 Docker 容器中主要分为以下几个步骤,我会以 Python Web 应用为例进行说明,其他语言的项目流程类似:


1. 准备项目文件

确保项目结构清晰,例如:

myapp/
├── app.py          # 主程序
├── requirements.txt # Python依赖
└── Dockerfile      # Docker构建文件

2. 编写 Dockerfile

在项目根目录创建 Dockerfile(无后缀),内容示例:

# 基础镜像(根据项目需求选择)
FROM python:3.9-slim

# 设置工作目录
WORKDIR /app

# 复制依赖文件并安装
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制项目代码
COPY . .

# 暴露端口(与应用端口一致)
EXPOSE 5000

# 启动命令(根据实际应用调整)
CMD ["python", "app.py"]

3. 构建 Docker 镜像

在项目目录下执行:

docker build -t myapp:latest .
  • -t:指定镜像名称和标签(如 myapp:latest
  • .:表示使用当前目录的 Dockerfile

4. 运行容器

docker run -d -p 5000:5000 --name myapp_container myapp:latest
  • -d:后台运行
  • -p 主机端口:容器端口:端口映射
  • --name:指定容器名称

5. 验证部署

curl http://localhost:5000  # 或浏览器访问

6. 其他常见需求

挂载本地目录(开发调试)

docker run -v $(pwd):/app -p 5000:5000 myapp:latest

使用 Docker Compose(多服务编排)

创建 docker-compose.yml

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/app

运行:

docker-compose up -d

连接数据库

docker-compose.yml 中添加数据库服务:

services:
  db:
    image: postgres:13
    environment:
      POSTGRES_PASSWORD: example
  web:
    depends_on:
      - db

注意事项

  1. 精简镜像:使用 Alpine 版本基础镜像(如 python:3.9-alpine)减少体积。
  2. 多阶段构建:适用于编译型语言(如 Go/Java),分离构建环境和运行环境。
  3. 环境变量:敏感信息(如数据库密码)通过 -e.env 文件传递: bash docker run -e DB_PASSWORD=123456 myapp:latest

调试技巧

  • 查看日志:docker logs myapp_container
  • 进入容器:docker exec -it myapp_container /bin/sh
  • 清理旧镜像:docker system prune

按照以上步骤,即可完成项目容器化部署。根据实际项目需求调整 Dockerfile 和启动命令即可。