前回 Vagrant (Ubuntu)で Docker, Docker Compose 環境構築しました。
Vagrant (Ubuntu) に Docker, Docker Compose インストール - 長生村本郷Engineers'Blog
以下に移行しました。 kenzo0107.github.io
上記環境を元に Docker Compose チュートリアル を実行しました。
完全な備忘録です。
プロジェクトディレクトリ作成 1 vagrant%$ mkdir composetest && cd composetest
app.py 作成 1 2 3 4 5 6 7 8 9 10 11 12 13 14 from flask import Flaskfrom redis import Redisapp = Flask(__name__) redis = Redis(host='redis' , port=6379 ) @app.route('/' ) def hello (): count = redis.incr('hits' ) return 'Hello from Docker! I have been seen {} times.\n' .format (count) if __name__ == "__main__" : app.run(host="0.0.0.0" , debug=True )
requirements.txt 作成 pip でインストールするモジュールを列挙します。
Dockerfile 作成 1 2 3 4 5 FROM python:3.4 -alpineADD . /code WORKDIR /code RUN pip install -r requirements.txt CMD ["python" , "app.py" ]
docker-compose.yml 作成 1 2 3 4 5 6 7 8 9 10 11 version: '2' services: web: build: . ports: - '5000:5000' volumes: - .:/code redis: image: 'redis:alpine'
Docker Compose でイメージビルド、コンテナ起動 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 vagrant%$ docker-compose up Creating composetest_web_1 Creating composetest_redis_1 Attaching to composetest_redis_1, composetest_web_1 redis_1 | 1:C 13 Apr 14:25:38.483 # Warning: no config file specified, using the default config. Inorder to specify a config file use redis-server /path/to/redis.conf redis_1 | _._ redis_1 | _.-``__ ''-._ redis_1 | _.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit redis_1 | .-`` .-```. ```\/ _.,_ ''-._ redis_1 | ( ' , .-` | `, ) Running in standalone mode redis_1 | |`-._`-...-` __...-.``-._|'` _.-'| Port: 6379 redis_1 | | `-._ `._ / _.-' | PID: 1 redis_1 | `-._ `-._ `-./ _.-' _.-' redis_1 | |`-._`-._ `-.__.-' _.-'_.-'| redis_1 | | `-._`-._ _.-'_.-' | http://redis.io redis_1 | `-._ `-._`-.__.-'_.-' _.-' redis_1 | |`-._`-._ `-.__.-' _.-'_.-'| redis_1 | | `-._`-._ _.-'_.-' | redis_1 | `-._ `-._`-.__.-'_.-' _.-' redis_1 | `-._ `-.__.-' _.-' redis_1 | `-._ _.-' redis_1 | `-.__.-' redis_1 | redis_1 | 1:M 13 Apr 14:25:38.486 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. redis_1 | 1:M 13 Apr 14:25:38.486 # Server started, Redis version 3.2.8 redis_1 | 1:M 13 Apr 14:25:38.486 # WARNING overcommit_memory is set to 0! Background save may failunder low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf andthen reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. redis_1 | 1:M 13 Apr 14:25:38.486 * The server is now ready to accept connections on port 6379 web_1 | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) web_1 | * Restarting with stat web_1 | * Debugger is active! web_1 | * Debugger PIN: 135-466-976 web_1 | 192.168.35.1 - - [13/Apr/2017 14:25:53] "GET / HTTP/1.1" 200 - web_1 | 192.168.35.1 - - [13/Apr/2017 14:25:53] "GET /favicon.ico HTTP/1.1" 404 -
ブラウザにアクセスしてみる。
表示されました!
リロードする度に以下数字部分がインクリメントされるのが確認できます。
1 Hello from Docker! I have been seen 1 times.
便利 ♪