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:
部署最佳实践
- 使用多阶段构建减小镜像体积
- 不要以 root 用户运行应用
- 合理利用构建缓存
- 使用
.dockerignore排除不需要的文件