Docker 让应用程序的部署变得简单和一致。本文介绍 Docker 的核心概念和实战技巧。
基础概念
镜像和容器
- 镜像(Image):只读模板,包含运行应用所需的一切
- 容器(Container):镜像的运行实例
# Dockerfile 示例FROM node:18-alpine
WORKDIR /app
COPY package*.json ./RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]常用命令
镜像管理
# 构建镜像docker build -t myapp:1.0 .
# 查看镜像列表docker images
# 删除镜像docker rmi myapp:1.0
# 推送镜像到仓库docker push username/myapp:1.0容器操作
# 运行容器docker run -d -p 3000:3000 --name myapp myapp:1.0
# 查看运行中的容器docker ps
# 查看日志docker logs -f myapp
# 进入容器docker exec -it myapp /bin/shDocker Compose
多容器应用管理:
version: '3.8'
services: web: build: . ports: - "3000:3000" environment: - NODE_ENV=production - DATABASE_URL=postgres://db:5432/myapp depends_on: - db
db: image: postgres:15 volumes: - postgres_data:/var/lib/postgresql/data environment: - POSTGRES_DB=myapp - POSTGRES_USER=user - POSTGRES_PASSWORD=password
volumes: postgres_data:生产环境最佳实践
- 使用多阶段构建减小镜像体积
- 不以 root 用户运行应用
- 使用健康检查
- 限制容器资源使用
总结
Docker 让”一次构建,到处运行”成为可能,是现代应用部署的标准工具。
