Docker容器化部署实战:从零搭建微服务架构
Docker容器化部署实战:从零搭建微服务架构
Docker是一个开源的容器化平台,允许开发者将应用及其依赖打包到轻量级、可移植的容器中。与虚拟机不同,容器共享宿主机内核,启动更快、资源占用更少。
一、Docker基础操作
安装Docker(Ubuntu):
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
常用命令:
docker pull nginx:latest
docker images
docker run -d -p 80:80 --name mynginx nginx
docker ps
docker stop mynginx
docker rm mynginx
二、编写Dockerfile
Python应用示例:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "app.py"]
多阶段构建优化镜像体积:
FROM node:18 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
三、Docker Compose编排微服务
version: "3.8"
services:
web:
build: ./app
ports:
- "8000:8000"
depends_on:
- db
- redis
db:
image: postgres:15
environment:
POSTGRES_DB: myapp
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
pgdata:
四、生产环境最佳实践
1. 使用.dockerignore排除不需要的文件
2. 不要在镜像中存储敏感信息,使用Docker Secrets
3. 固定基础镜像版本标签,避免latest
4. 合理利用构建缓存,COPY依赖文件在前
5. 使用健康检查确保服务可用
HEALTHCHECK --interval=30s --timeout=3s --retries=3
CMD curl -f http://localhost:8000/health || exit 1
总结
Docker容器化是现代应用部署的标准方式。通过Dockerfile定义应用环境,通过Docker Compose编排多个服务,可以轻松实现微服务架构的本地开发和部署。
更多推荐
所有评论(0)