Docker composeの基本的な操作をまとめてみました。(初心者向けです)
コンテナを立ち上げる
docker compose up : compose.yamlに定義されたすべてのサービスを起動するコマンドであり、初回実行時には自動的にネットワーク・ボリュームの作成、イメージのビルドも行われる。
覚えておきたいオプション
-
-d: コンテナを立ち上げる際に、ディタッチモードで起動する。これによりCLIが占領されないため、ほかのコマンドを入力することが可能になる。- 例:
docker compose up -d
- 例:
-
--build: コンテナを立ち上げる際に、イメージを強制的に再ビルドしてコンテナを立ち上げる。- 例:
docker compose up --build
- 例:
- よく使う例: イメージを強制的に再ビルドしてディタッチモードでコンテナを起動させる
docker compose up --build -d
コンテナを停止する
-
docker compose down: compose.yamlで定義されたコンテナを停止・削除し、関連するネットワークも削除する。upの逆操作にあたる。
覚えておきたいオプション
-
-v: コンテナを停止させる際に、volumeも一緒に削除し完全初期化させる。- コンテナ内に存在するDBのテーブルスキーマなどを変更したい際に一度volumeを削除してリセットしないといけないためよく使う。
- 例:
docker compose down -v
補足: 開発でよく使うほかのComposeのコマンド
| コマンド | 説明 |
|---|---|
docker compose ps |
現在稼働中のコンテナを一覧を確認する |
docker compose logs |
全サービスまたは特定サービスのログを表示 |
docker compose exec <service> bash |
起動中のコンテナに入る(例: docker compose exec mysql bash) |
docker compose build |
イメージだけを再ビルドする(コンテナは起動しない) |
注意点やよくあるミス
no configuration file provided: not found と出力されてコマンドが実行されない: compose.yaml ファイルが置かれているディレクトリ以外の場所でコマンドを実行していませんか?コマンドは必ずcompose.yamlファイルが置かれているディレクトリで実行しましょう!
まとめ
docker composeは最初のうちは難しいですが、慣れてしまえば開発がとても快適になり、覚えておいて損はないのでぜひ習得するのをお勧めします。
次は compose.yamlファイルの解説や、MySQLのコンテナを docker compose で立ち上げる方法を解説した記事を書いてみたいと思います。