Compose项目是Docker官方开源的项目,负责对Docker容器集群的快速编排。
实验:除了起一个web服务外,起redis数据库供服务调用。
Compose包含两个概念:
· 服务:容器实例
· 项目:(重点)一组关联的应用容器组成的完整业务单元,在docker-compose.yml中定义
如果已经安装好docker-compose(docker-compose的shell实际上是用docker/compose(python程序)的容器下运行),准备以下文件即可:
app.py,用flask起的web服务,主要是连接redis数据库进行计数
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! 该页面已被访问 {} 次。\n'.format(count)
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
Dockerfile(Docker镜像的主要构建方式,通过原始镜像一层一层地构造新镜像)
FROM python:3.6-alpine
ADD . /code WORKDIR /code
RUN pip install redis flask
CMD ["python","app.py"]
docker-compose.yml
version: '3'
services:
web: build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
最后运行
docker-compose up
用浏览器访问本地5000端口即可