Docker 容器化部署实战

+

Docker 简介

Docker 是一个开源的容器化平台,它允许你将应用及其依赖打包到一个轻量级、可移植的容器中。

基本概念

  • 镜像 (Image):只读模板,包含创建容器所需的所有文件
  • 容器 (Container):镜像的运行实例
  • Dockerfile:用于构建镜像的脚本文件

编写 Dockerfile

FROM node:18-alpine

WORKDIR /app

COPY package*.json ./
RUN npm install --production

COPY . .

EXPOSE 3000

CMD ["node", "server.js"]

常用命令

# 构建镜像
docker build -t my-app:latest .

# 运行容器
docker run -d -p 3000:3000 --name my-app my-app:latest

# 查看运行中的容器
docker ps

# 停止容器
docker stop my-app

# 删除容器
docker rm my-app

Docker Compose

使用 docker-compose.yml 管理多容器应用:

version: '3.8'
services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

部署最佳实践

  1. 使用多阶段构建减小镜像体积
  2. 不要以 root 用户运行应用
  3. 合理利用构建缓存
  4. 使用 .dockerignore 排除不需要的文件