Dockerことはじめ
FlaskをDockerコンテナ上で起動させるところまで
インストール
Docker ToolBoxでインストール
環境変数
.zshrcに↓を追加
echo "eval $(docker-machine env default)" >> ~/.zshrc
ない場合はDockerQuickstartTerminal.appを都度叩く形になる? 参考までにない時に出るエラー
$ docker images Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Get started with Docker Machine and a local VM - Docker
Command
オプション付コマンドを雑にメモ
最後に実行したコンテナのIDのみ表示
docker ps -l -q
Dockerfileからイメージを構築
docker build -t docker_sample .
イメージを起動して、exitしたらコンテナを壊す
docker run -it --rm docker_sample bash
コンテナの一括削除
docker rm `docker ps -a -q`
Dockerfile
--no-install-recommendはイメージを軽量にするためやっておいた方が良さそう
FlaskをDocker上で動かす
最低限で動かす
+ web - app.py - requirements.txt -
web/app.py Flaskのサンプル。ほぼhttp://flask.pocoo.org/より
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello World!' if __name__ == '__main__': app.run(debug=True, host=)
web/requirement/txt
Flask
docker-compose
docker-composeを使うと複数コンテナ管理をyamlで行うことができる 今回は複数使わないけど、こちらでやってみる
以下がdocker-composeが必要になった経緯が分かりやすい
docker-composeを使うと複数コンテナの管理が便利に - Qiita docker-compose.yml
web: build: ./web ports: - "5000:5000" volumes: - .:/code
いざup
$ docker-compose up
デフォルトのIPを以下で確認して、アクセスする(今回はhttp://192.168.99.100:5000/ )と「HelloWorld!」が表示される
$ docker-machine ip default 192.168.99.100
Tips
15 Docker Tips in 5 MinutesでTipsが紹介されている。例えばこんなalias
echo "alias dl='docker ps -l -q'" >> ~/.zshrc
雑感
永続化周りとか、構成管理系のツールとの組み合わせベストプラクティスとかどういうのが主流なのかな
開発環境として使ってみたかったけど、Vagrant+Ansibleとかでとりあえず良い気がしてきた
参考
プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化
- 作者: 阿佐志保,山田祥寛
- 出版社/メーカー: 翔泳社
- 発売日: 2015/11/20
- メディア: 大型本
- この商品を含むブログ (3件) を見る