docker-compose--简单的计数器

1.app.py

from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    redis.incr('hits')
    return 'Hello World! I have been seen %s times.' % redis.get('hits')

if __name__ == "__main__":
    app.run(host="0.0.0.0",debug=True)

这是一个Flask应用,基于Python的轻Web应用;

@app.route('/') 访问根目录,然后返回一个从Redis里读取出来的值,该值通过自增来统计访问次数;

最后Web容器在0.0.0.0上监听默认端口5000并启动。

2.requirements.txt

flask
redis

指定了Pythone的依赖包:flaskredis

3.Dockerfile

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt

基于python2.7,将当前目录的文件拷贝至容器的工作目录/code

3.docker-compose.yml

version: '2'
services:
  web:
    build: .
    command: python app.py
    ports:
      - "5000:5000"
    volumes:
      - .:/code
    links:
      - redis
  redis:
    image: redis

定义了compose的版本和两个服务

其中,第一个服务web,它从当前目录的Dockerfile build得到,在容器中运行“python app.py”;把容器的5000端口映射到宿主机的5000端口;挂载执行这些操作所在的目录到容器中的/code目录下;

第二个服务redis直接使用已有redis镜像。

4.启动容器

docker-compose up

docker-compose--简单的计数器

访问宿主机的5000端口,刷新两次查看自增。

docker-compose--简单的计数器

docker-compose--简单的计数器

上一篇:YUM安装软件报错“At least 12MB more space needed on the /boot filesystem.”


下一篇:设计模式--分类与六大原则