概要
docker-composeは複数のDockerコンテナを簡単にまとめて管理できるツール。
docker-compose を使うメリット
- 複数サービスをまとめて管理できる
- 1つの構成ファイルで環境を再現できる
- 開発・チーム共有・CI/CDに最適
- 環境構築の属人化を防げる
Dockerとの関係
Macであれば「Docker Desktop on Mac」、
Windowsであれば「Docker Desktop on Windows」をインストールすることで
docker-composeも使用することができる。
通常、Dockerと言えば「Docker Desktop」のことを指す。
Dockerは個人で利用する場合には無償だが、従業員数250名以上の会社で商用利用する場合には
有償となる。(有償となる要件等は公式サイトで確認すること)
docker-composeの中身
Dockerfileとdocker-compose.yamlの2つのファイルが存在する。
Dockerfile とは?
→1つのアプリケーション(例:FastAPI)のイメージを作るための設計図。
「どういう環境でアプリを動かすか」を定義。
例:Pythonをインストール → 依存パッケージを入れる →
ソースコードをコピー → アプリを起動するコマンドを書く。
docker-compose.yaml とは?
→複数のサービス(アプリ、DBなど)をまとめて定義・起動するための設定ファイル。
Dockerfile を使ってイメージをビルド(build:)
関連する他のサービスも一緒に起動(services:)
ポートの割り当てやボリュームの永続化もここで管理
Dockerfileがまずあって、docker-compose.ymlの「build: .」の部分で
Dockerfileの存在するディレクトリのパスを示している。
イメージとコンテナとは
この2点がまず大事。
用語 | 説明 |
---|---|
イメージ | 設計図(Dockerfileからビルド) |
コンテナ | 実体(イメージから作られ実際に動いているサービス・アプリ) |
Dockerfile → docker build → 🧱 イメージ作成
↓
docker-compose.yml → 🏃 複数サービスを定義(FastAPI, MongoDB, Neo4j)
↓
docker-compose up → コンテナを起動(複数まとめて)
コマンド
コマンド | 説明 |
---|---|
docker-compose up |
コンテナ起動 |
docker-compose up --build |
イメージをビルドして起動 |
docker-compose up -d |
バックグラウンド起動 |
docker-compose stop |
停止(状態は残る) |
docker-compose down |
停止+削除(状態初期化) |
docker-compose down -v |
ボリューム(データ)も削除 |
docker-compose logs |
ログを見る |
docker-compose ps |
コンテナ一覧表示 |