Docker Composeとは

DOCKER COMPOSE
読み: ドッカーコンポーズ

Docker Composeとは、複数のDockerコンテナをまとめて定義・起動・管理するためのツール

読み: ドッカーコンポーズ

Docker Composeとは、複数のDockerコンテナをまとめて定義・起動・管理するためのツール。YAMLファイル1つで、Webサーバー、データベース、キャッシュサーバーなど複数のサービスの構成を記述し、1コマンドで全てを起動できる。AI開発環境では、LLM推論サーバー、記憶システム、監視ツールを1つのcompose.ymlにまとめて、チーム全員が同じ環境を再現できるようにする用途で使われる。

かんたんに言うと

docker compose up」の1コマンドで、AIの推論サーバーもデータベースも監視ツールも全部まとめて起動する仕組み。設定ファイル1つで環境をまるごと再現できるため、「自分のPCでは動くけど他の人のPCでは動かない」問題がなくなる。

compose.ymlの基本構造

compose.ymlにはサービス(コンテナ)ごとの設定を記述する。使用するDockerイメージ、ポートマッピング、環境変数、ボリューム(データの永続化)、依存関係を定義する。サービス間はDockerネットワークで自動的に接続され、サービス名でお互いにアクセスできる。

AI開発環境での活用

AI開発ではLLM推論サーバー(Ollama等)、ベクトルデータベースMilvus等)、MCPサーバー、監視ダッシュボードなど複数のサービスが必要になる。Docker Composeでこれらを1ファイルにまとめれば、新しいメンバーがgit cloneして「docker compose up」するだけで開発環境が立ち上がる。環境構築に半日かかっていた作業が数分で終わる。

KubernetesやDocker Swarmとの違い

Docker Composeは1台のマシン上で複数コンテナを管理するツール。複数マシンにまたがる大規模な運用にはKubernetesDocker Swarmが必要になる。開発環境やテスト環境ではDocker Compose、本番環境ではKubernetesという使い分けが一般的。Docker Composeで動いた構成をKubernetesに移行するツールも存在する。

導入時の判断基準

サービスが3つ以上ある環境ではDocker Composeの導入効果が高い。2つ以下なら手動でdocker runした方が早い場合もある。compose.ymlをGitで管理すれば、環境の変更履歴も追跡できる。ただし、Docker自体の基礎知識がないと設定ファイルの意味が理解できないため、まずDockerの基本を押さえてから導入すべき。

当社の見解

当社はツール選定において実用性を第一方針にしている。カタログスペックやベンチマークスコアではなく、実務で1週間使い倒して初めて判断する。フレームワークを増やすほど管理コストが増える経験もした。フックを増やしすぎてAIが情報過多でパニックになったこともある。足し算だけでなく、引き算の判断が選定の質を決める。検証せずに導入したツールは、ほぼ例外なく3か月以内に使わなくなった。

同じ失敗を二度としないAIエージェント

今のAIは、聞けば何でも答えてくれます。
でも、セッションが切れた瞬間に前回の失敗を忘れます。

当社が開発しているAIは、過去の経緯を念頭に置いて、
聞かれる前に「それは前回うまくいきませんでした」と声をかけます。
人間にも同じ失敗をさせず、AI自身も繰り返しません。

古参の社員が横にいるように、黙っていても気づいてくれる。
それが、当社が考える本当のAI社員です。

相談する