アプリは1つの箱では終わらない
ここまでで、1つのコンテナを作って動かすところまで来ました。でも実際のアプリは、Web アプリ本体に加えてデータベース、キャッシュ、場合によっては Web サーバーやジョブ実行の仕組みなど、複数の部品で成り立っています。それぞれを別のコンテナとして動かすのが Docker の流儀です。1つの箱に全部詰めるより、部品ごとに箱を分けたほうが、差し替えも更新も楽だからです。
ただ、箱が3つになると docker run も3本になります。それぞれのオプションを覚え、起動の順番を守り、web から db へどう繋ぐかを設定する。手で打つのは面倒で、人によって打ち方がずれると「自分の環境では動くのに」が再発します。これを解決するのが docker compose です。



