はじめに
本記事では、Docker Compose の基本的な書き方と、よく使うコマンドを紹介します。
備忘録的に使っていただくと嬉しいです。
Docker Compose の基本
docker-compose.yml
の基本構造
docker-compose.yml
は、複数のコンテナ設定をまとめて記述できるファイルです。基本的な構成は以下の通りです。
docker-compose.yml
version: '3.8'
services:
app:
image: python:3.9
container_name: my_app
volumes:
- .:/app
working_dir: /app
command: python app.py
ports:
- "5000:5000"
depends_on:
- db
db:
image: postgres:15
container_name: my_db
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydatabase
ports:
- "5432:5432"
開発時によく使うDocker Composeコマンド
1. docker compose up
コンテナを起動し、必要ならばイメージをビルドする。
docker compose up -d # バックグラウンドで起動
2. docker compose down
コンテナを停止し、ネットワークなどを削除する。
docker compose down
3. docker compose build
明示的にイメージをビルドする。
docker compose build
4. docker compose ps
現在実行中のコンテナの一覧を表示する。
docker compose ps
5. docker compose logs
コンテナのログを表示する。
docker compose logs -f # リアルタイムで表示
6. docker compose exec
実行中のコンテナ内でコマンドを実行する。
docker compose exec app bash # appコンテナ内でBashを起動
7. docker compose stop/start/restart
コンテナの起動・停止・再起動。
docker compose stop # 停止
docker compose start # 再開
docker compose restart # 再起動
8. docker compose rm
停止中のコンテナを削除。
docker compose rm -f # 確認なしで削除
9. docker compose run
一時的なコンテナを作成して実行。
docker compose run --rm app python manage.py migrate
10. docker compose config
docker-compose.yml
の構文チェック。
docker compose config
開発時のワークフロー
-
環境構築・初回起動
docker compose up -d
-
コードを変更したらイメージを再ビルド
docker compose build docker compose up -d
-
ログを確認する
docker compose logs -f
-
コンテナ内に入ってデバッグ
docker compose exec app bash
-
環境をリセット
docker compose down -v