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的依賴包:
flask
和
redis
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

通路主控端的5000端口,重新整理兩次檢視自增。