概述
Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。
使用Compose基本上是一个三步过程:
-
使用定义您的应用环境,
Dockerfile
以便可以在任何地方复制。 -
定义组成应用程序的服务,
docker-compose.yml
以便它们可以在隔离的环境中一起运行。 -
Run
docker-compose up
and Compose启动并运行您的整个应用程序
安装
参考文档:https://docs.docker.com/compose/install/
入门示例
1、新建项目
$ mkdir composetest $ cd composetest
2、在项目中创建一个app.py的文件
import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host='redis', port=6379) def get_hit_count(): retries = 5 while True: try: return cache.incr('hits') except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route('/') def hello(): count = get_hit_count() return 'Hello World! I have been seen {} times.\n'.format(count)
3、新建requirements.txt文件
flask redis
4、编写Dockerfile
FROM python:3.7-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"]
5、编写docker-compose.yml
version: "3.9" services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"
6、启动应用程序
docker-compose up
7、在浏览器中输入http:// localhost:5000 /以查看应用程序正在运行
详细命令
参考:https://docs.docker.com/compose/reference/