Docker Compose使用教程
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过使用YAML文件来配置应用程序的服务,你可以使用一个命令创建并启动所有服务。本教程将详细介绍Docker Compose的安装、配置和使用方法。
1 安装Docker Compose
- 确保已安装Docker。Docker Compose依赖于Docker引擎。
- 安装Docker Compose:
- Linux系统:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
2 编写docker-compose.yml文件
- 创建项目目录:
mkdir mywebapp
cd mywebapp
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
environment:
FLASK_ENV: development
redis:
image: "redis:alpine"
3 构建和运行服务
- 在项目目录中启动服务:
docker-compose up
docker-compose up -d
docker-compose ps
docker-compose down
4 常用命令
- 构建服务(重新构建镜像):
docker-compose build
docker-compose logs -f
docker-compose exec web ls -l
docker-compose down --volumes --rmi all
5 实战示例:部署一个Flask应用
- 创建app.py文件:
from flask import Flask
import redis
import os
app = Flask(__name__)
redis_host = os.getenv('REDIS_HOST', 'redis')
redis_client = redis.Redis(host=redis_host, port=6379)
@app.route('/')
def hello():
count = redis_client.incr('hits')
return f'Hello World! I have been seen {count} times.\n'
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000, debug=True)
flask
redis
FROM python:3.9-alpine
WORKDIR /code
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
EXPOSE 5000
COPY . .
CMD ["flask", "run"]
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
environment:
REDIS_HOST: redis
depends_on:
- redis
redis:
image: "redis:alpine"
docker-compose up -d
6 高级配置
- 环境变量覆盖:创建.env文件
REDIS_HOST=myredis
在docker-compose.yml中使用:
environment:
REDIS_HOST: ${REDIS_HOST:-redis}
- 网络配置:
services:
web:
networks:
- front-tier
db:
networks:
- back-tier
networks:
front-tier:
driver: bridge
back-tier:
driver: bridge
services:
db:
image: postgres
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
7 故障排除
- 查看详细错误信息:
docker-compose up --build --force-recreate
docker system prune
docker-compose logs web
docker-compose run web sh
8 总结
Docker Compose通过一个简单的YAML文件定义多容器应用,极大地简化了容器化应用的部署和管理流程。它使得开发、测试和生产环境的一致性得到保障,并支持服务编排、网络管理、数据持久化等高级功能。掌握Docker Compose是现代化应用开发和部署的重要技能,能够显著提高开发效率和运维便利性。通过本教程的学习,你应该能够熟练地使用Docker Compose来构建和管理多容器Docker应用程序。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。





