Appearance
容器化部署(Docker)核心功能实现
这是一个最小但完整的 Docker 容器化部署实现,展示了 Docker 的核心概念和实现方式。
项目结构
docker-system/
├── app/
│ ├── src/ # 应用源代码
│ ├── package.json
│ └── Dockerfile # 应用 Dockerfile
├── nginx/
│ └── nginx.conf # Nginx 配置
├── docker-compose.yml # Docker Compose 配置
├── .dockerignore # Docker 忽略文件
└── README.md安装依赖
bash
npm install运行测试
bash
npm test核心功能
1. Dockerfile
实现应用容器化。
2. Docker Compose
实现多容器应用部署。
3. Nginx 配置
实现反向代理和负载均衡。
4. 健康检查
实现容器健康检查。
使用示例
构建镜像
bash
# 构建应用镜像
docker build -t myapp:latest .
# 构建多阶段镜像
docker build -t myapp:multi-stage --target builder .运行容器
bash
# 运行单个容器
docker run -d -p 3000:3000 --name myapp myapp:latest
# 运行多容器应用
docker-compose up -d管理容器
bash
# 查看容器
docker ps
# 查看日志
docker logs myapp
# 停止容器
docker stop myapp
# 删除容器
docker rm myapp可扩展功能点
1. 多阶段构建
优化镜像大小:
dockerfile
# TODO: 实现多阶段构建
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/dist ./dist
CMD ["node", "dist/index.js"]2. 健康检查
实现容器健康检查:
dockerfile
# TODO: 实现健康检查
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD node -e "require('http').get('http://localhost:3000/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"3. 日志管理
配置日志驱动:
yaml
# TODO: 配置日志驱动
services:
app:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"4. 资源限制
设置容器资源限制:
yaml
# TODO: 设置资源限制
services:
app:
deploy:
resources:
limits:
cpus: '0.50'
memory: 512M
reservations:
cpus: '0.25'
memory: 256M5. 网络配置
自定义网络配置:
yaml
# TODO: 自定义网络配置
networks:
app-network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16下一步
查看 05-lesson-plan.md 了解详细的课程计划。

扫描二维码关注"架构师AI杜"公众号,获取更多技术内容和最新动态
