天天看點

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

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           
docker-compose--簡單的計數器

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

docker-compose--簡單的計數器
docker-compose--簡單的計數器