多容器復雜應用的部署:
Flask+redis, flask的container訪問redis的container
cat app.py
from flask import Flask from redis import Redis import os import socket app = Flask(__name__) redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379) @app.route('/') def hello(): redis.incr('hits') return 'Hello Container World! I have been seen %s times and my hostname is %s.\n' % (redis.get('hits'),socket.gethostname()) if __name__ == "__main__": app.run(host="0.0.0.0", port=5000, debug=True)
cat Dockerfile
FROM python:2.7 LABEL maintaner="lin@gmail.com" COPY . /app WORKDIR /app RUN pip install flask redis EXPOSE 5000 CMD [ "python", "app.py" ]
1.創建redis的container:
docker run -d --name redis redis
2. dokcer build -t lin/flask-redis .
3.創建container
docker run -d -p 5000:5000 --link redis --name flask-redis -e REDIS_HOST=redis lin/flask-redis #和上面源碼的相對應
4.進入上面的container,並執行env看一下:
docker exec -it flask-redis /bin/bash
env #環境變量
ping redis #在容器里可以ping redis
5.在主機訪問curl 127.0.0.1:5000。可以訪問到