以下是一些使用 Docker 的实际案例研究,展示了 Docker 在不同场景下的应用。
1. Web 应用部署
使用 Docker 可以轻松地将 Web 应用部署到多个环境中。以下是一个简单的示例:
Dockerfile:
FROM nginx COPY . /usr/share/nginx/html EXPOSE 80
运行容器:
docker build -t my-web-app . docker run -d -p 8080:80 my-web-app
2. 微服务架构
Docker 是微服务架构的理想选择,因为它可以轻松地将服务容器化,并独立部署。以下是一个简单的微服务架构示例:
服务 A:
FROM python:3.7 COPY . /app WORKDIR /app RUN pip install flask EXPOSE 5000 CMD ["python", "app.py"]
服务 B:
FROM python:3.7 COPY . /app WORKDIR /app RUN pip install flask EXPOSE 5001 CMD ["python", "app.py"]
运行容器:
docker run -d -p 5000:5000 service_a docker run -d -p 5001:5001 service_b
3. 数据库迁移
使用 Docker 可以轻松地进行数据库迁移,以下是一个示例:
Dockerfile:
FROM postgres:latest COPY mydatabase.sql /docker-entrypoint-initdb.d/
运行容器:
docker build -t mydatabase . docker run -d -p 5432:5432 mydatabase
4. CI/CD 流水线
Docker 可以与 CI/CD 工具(如 Jenkins、Travis CI)集成,实现自动化构建和部署。以下是一个简单的 Jenkinsfile 示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building Docker Image...'
sh 'docker build -t my-app .'
}
}
stage('Test') {
steps {
echo 'Running Tests...'
sh 'docker run my-app ./test.sh'
}
}
stage('Deploy') {
steps {
echo 'Deploying to Production...'
sh 'docker push my-app'
}
}
}
}
更多关于 Docker 的信息,请访问我们的 Docker 教程。