docker composeコマンドについて
Docker Composeは、複数のDockerコンテナを定義し、管理するためのツールです。
これにより、複雑なアプリケーションスタックを簡単に構成し、起動することができます。
基本的には、docker-compose.ymlファイルに設定を記述し、docker composeコマンドを使って操作します。
以下に、よく使用されるdocker composeコマンドとその機能について説明します。
基本的なdocker composeコマンド
1. docker compose up
このコマンドは、docker-compose.ymlファイルで定義された全てのサービスを起動します。
- dオプションを付けると、バックグラウンドで起動することができます。
docker compose up
docker compose up -d
2. docker compose down
このコマンドは、docker compose upで起動したコンテナを停止し、ネットワークやボリュームを削除します。
デフォルトでは、サービスで作成されたネットワークとボリュームも削除します。
docker compose down
3. docker compose build
このコマンドは、docker-compose.ymlファイルで定義されたサービスのイメージをビルドします。
特に、Dockerfileが変更された場合や、新しいサービスを追加したときに使用します。
docker compose build
4. docker compose logs
このコマンドは、サービスのログを表示します。
- fオプションを使用すると、ログをリアルタイムでフォローすることができます。
docker compose logs
docker compose logs -f
5. docker compose exec
このコマンドは、実行中のコンテナ内でコマンドを実行します。
例えば、シェルを開く場合などに使用します。
docker compose exec <service> <command> docker compose exec web /bin/bash
6. docker compose ps
このコマンドは、現在稼働中のコンテナのリストを表示します。
コンテナの状態やポートマッピングなどを確認できます。
docker compose ps
7. docker compose pull
このコマンドは、docker-compose.ymlファイルで定義されたサービスの最新のイメージを取得します。
特に、イメージの更新を確認する際に使用します。
docker compose pull
8. docker compose push
このコマンドは、ローカルでビルドしたイメージをDocker Hubなどのリモートリポジトリにプッシュします。
通常、CI/CDパイプラインの一部として使用されます。
docker compose push
9. docker compose restart
このコマンドは、現在稼働中の全てのサービスを再起動します。
設定ファイルやコードが変更された場合に、サービスを再起動する際に使用します。
docker compose restart
10. docker compose rm
このコマンドは、停止したサービスのコンテナを削除します。
停止中のコンテナが残っている場合に使用します。
docker compose rm
例: docker-compose.ymlファイルのサンプル
以下は、簡単なdocker-compose.ymlファイルの例です。
このファイルは、Webサーバーとデータベースの2つのサービスを定義しています。
version: '3' services: web: image: test-web:latest ports: - "5000:5000" volumes: - ./web:/app depends_on: - db db: image: test-db:latest volumes: - db-data:/var/lib/mysql volumes: db-data:
この例では、test-webとtest-dbというカスタムイメージを使用して、Webサーバーとデータベースの2つのサービスを定義しています。
また、データベースのデータはボリュームを使って永続化されています。