FisherHub Blog
← 返回列表 | 工具笔记

Docker + Ubuntu:容器化你的开发环境

用 Docker Compose 管理 Node、PostgreSQL、Redis,一次配置到处运行

安装 Docker

# Ubuntu 24.04
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
# 重新登录生效

Docker Compose 开发环境

# docker-compose.yml
services:
  app:
    image: node:22-alpine
    working_dir: /app
    volumes:
      - .:/app
    ports:
      - "3000:3000"
    command: npm run dev
    depends_on:
      - db
      - redis

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: myapp
      POSTGRES_PASSWORD: devpass
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

volumes:
  pgdata:

Dockerfile 最佳实践

# 生产环境
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:22-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/server/entry.mjs"]

常用命令

docker compose up -d        # 启动
docker compose logs -f app  # 查看日志
docker compose down         # 停止
docker compose exec app sh  # 进入容器
docker system prune -a      # 清理无用镜像

镜像瘦身

  • alpine 变体(100MB+ → 20MB)
  • 多阶段构建(分离构建和运行)
  • .dockerignore 排除 node_modules.git

Docker 在开发环境的优势不只是”在我的机器上能跑”,更重要的是换机器只需一行命令