はじめに
Dockerコマンドについてまとめたページです。
また、Dockerファイルの修正ごとに実施必要なコマンドもまとめてます。
※本ページでは、特定のサービスを実施するためのコマンドをまとめてます。
実行環境
InteliJ上で、Dockerを作成し、実行。
本文
Docker Compose 特定のサービス操作コマンド
🚀 起動関連
cd /Users/repository/test/docker
docker-compose up <サービス名> # 指定したサービスのみ起動
オプション:
-d: バックグラウンドで起動(デタッチモード)
--build: イメージを再ビルドしてから起動
docker-compose start <サービス名> # 停止中の指定したサービスを起動
🛑 停止関連
docker-compose down <サービス名> # 指定したサービスを停止し、コンテナ・ネットワークを削除
オプション:
--volumes: ボリュームも削除
--rmi all: イメージも削除
docker-compose stop <サービス名> # 指定したサービスを停止(コンテナは残る)
🔄 その他の操作
docker-compose restart <サービス名> # サービスを再起動
docker-compose logs <サービス名> # サービスのログを表示
オプション:
-f: リアルタイムでログを追跡(フォロー)
--tail=100: 最新100行を表示
docker-compose exec <サービス名> <コマンド> # コンテナ内で指定したコマンドを実行
【例】
docker-compose exec <サービス名> date # コンテナ内でdateコマンドを実行
docker-compose exec <サービス名> bash # コンテナのシェルに入る
📊 確認コマンド
docker-compose ps <サービス名> # 指定したサービスの状態を表示
docker-compose top <サービス名> # 指定した実行中のサービスのプロセスを表示
🎯 ポイント
サービス名: docker-compose.yml で定義したサービス名を使用
複数サービス: スペース区切りで複数指定可能(例: up service1 service2)
プロジェクト: -p オプションでプロジェクト名を指定可能
ファイル指定: -f で特定のcomposeファイルを指定
💡 実践例
コンテナ内でコマンド実行
docker-compose exec <サービス名> curl http://localhost:8080/XX
InteliJ上でDockerを修正するときの対応について
1. IntelliJ上で修正しても、コンテナの再起動が必要です!
🔍 理由
WireMockは起動時に mappings フォルダを読み込み、メモリにキャッシュします。
【挙動】
コンテナ起動時
↓
mappings フォルダを読み込み
↓
メモリにマッピング定義をロード
↓
以降はメモリのキャッシュを使用
修正したファイルをWireMockが自動で再読み込みするまでの仕組みがないため、コンテナの再起動が必要です。
📋 修正方法別の対応
修正対象 - 必要な操作
mappingファイル - docker-compose restart wiremock-users が必要
Dockerfile - docker-compose up --build wiremock-users が必要
docker-compose.yml - docker-compose down → docker-compose up が必要
📁 Docker Volume とは
Docker Volumeは、コンテナのデータを永続化し、ホストとコンテナ間でデータを共有するための仕組みです。
🎯 基本概念
・コンテナの性質
コンテナは一時的(停止するとデータが消える)
コンテナ内の変更は永続化されない
再起動すると初期状態に戻る
・Volumeの役割
データを永続化(コンテナ停止後もデータが残る)
ホストとコンテナのデータ共有(リアルタイム同期)
コンテナ間でのデータ共有