参考自: https://blog.csdn.net/pushiqiang/article/details/78682323
1 Compose介绍
Docker Compose是一个用来定义和运行复杂应用的Docker工具。
相当于一个启用多个Docker容器的脚本
一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。
2 安装docker-compose
(1) win mac
直接装docker-desktop就能自动 安装docker和docker-compose
(2) linux
先确保自己已经安装了docker, 如果未安装, 执行:
apt install docker.io
再安装docker-compose
apt install docker-compose
检查是否安装成功
docker-compose —version
3 构建一个docker容器内的flask应用
目录结构如下:
└── compose_test
├── docker
│ └── docker-compose.yml
├── Dockerfile
└── src
├── app.py
└── requirements.txt
(1) 创建工程目录
$ mkdir compose_test
$ cd compose_test
$ mkdir src # 源码文件夹
$ mkdir docker # docker配置文件夹
创建app.py
from flask import Flask
from redis import Redis
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
@app.route('/')
def hello():
count = redis.incr('hits')
return 'Hello World! I have been seen {} times.\n'.format(count)
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
创建requirements.txt
flask
redis
(2) 创建Dockerfile
构建flask web应用的镜像
FROM python:3.7-slim
COPY src/ /opt/src
WORKDIR /opt/src
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
(3) 创建docker-compose.yml
version: '3'
services:
web:
build: ../
ports:
- "5000:5000"
redis:
image: redis:3.0.7
这个compose文件定义了两个服务,即定义了web和redis两个容器。