かなり昔に触って以来、そんなに触る機会もなくて放置してた docker の再入門を兼ね、nginx, fluentd, node(これはなんでもいいけど) の構成を作ってみました。
成果物
docker-compose build
して docker-compose up
すると下記のような動作をします。
- node のサーバが立ち上がる
- nginx が起動、8080 ポートで待ち受け、node サーバにリバースプロキシ
- fluentd が起動、アクセスログを標準出力に吐き出す
注意
実運用に耐えられるものにはなってないです。
nginx の設定とかかなり適当、fluentd は標準出力に吐き出すだけ。
「個人サービスを作るときに VPS などにサクッと環境を立ち上げられる」の目標でこれから拡張していくつもりです。
いろいろメモ
- docker のバージョン要確認
- 私の環境のバージョンについては README に記載してます
- 私の環境にはやたら古い boot2docker 入ってたりして大変でした。そういう人は、綺麗にアンインストールして VM とかも削除して、docker toolbox を入れるのが早そうです。
- Alpine Linux が DL 速くていい感じ
- ハマって数日経過してるうちに公式リポジトリの nginx が alpine 対応してたので入れ替えたけど、すげーDL速い
- docker の logging drivers という機能で、fluentd の導入がとても楽になったが、結構はまった
- まず docker のバージョンが古いせいで、ひとハマリ
- 次に fluentd の仕組み(もしかしたら logging driver の仕組み?)でふたハマリ
- nginx のログが一定量たまらないと、fluentd の標準出力に出てこない(curl で複数回アクセスしないとログに出てこない)
- docker-compose は便利
- 複数個のコンテナを立ち上げて連携させるのが当然メイン機能、とても便利
- 副次的な効果として、一度 docker-compose.yml 書いちゃうと build, up, stop, rm など覚えやすいコマンドでビルドや削除ができるのが良い
- 昔は
docker rm (docker ps -a -q)
こういうことしてた記憶がある
- 昔は