docker-composeとの違い
似たようなコマンドでdocker-compose
というコマンドも存在するので、
簡単に説明しておくと以下のような違いがある。
docker compose
:新しいコマンド(docker-compose
と互換性あり)docker-compose
:古いコマンド
これからは基本的にdocker compose
の方を利用しておけば良い。
将来的には互換性がないサブコマンドが出ると思うが
ここで紹介してるコマンドであればdocker-compose
と互換性のあるコマンドなので
読み替えてもらっても構わない。
コンテナ起動系
複数コンテナの生成
コンテナの生成、起動を行う場合はup
を利用する。
$ docker compose -f ./sample/docker-compose.yml up
-f
:定義ファイル名を指定する
docker composeコマンドは、デフォルトでカレンとディレクトリにある「docker-compose.yml」を参照するので、
ディレクトリが違ったりファイル名が違ったりする場合は-f
オプションで指定する必要がある。
コンテナ起動時にDockerfileをビルドする
$ docker compose up --build
コンテナをバックグラウンドで実行する
$ docker compose up -d
-d
オプションを起動すると、プロンプトの画面に戻る。
停止、再起動系
起動、停止、再起動
# コンテナの一括起動
$ docker compose start
# コンテナの一括停止
$ docker compose stop
# コンテナの一括再起動
$ docker compose restart
特定のコンテナのみを操作する
特定のコンテナのみを操作したい場合は、コマンドの引数にコンテナ名を指定するだけ。
# 「server_a」という名前のサービスのみを再起動する場合
$ docker compose restart server_a
削除系
複数コンテナの一括削除
compose定義ファイルによって作成されたコンテナを一括削除する場合は、rm
を利用する。
$ docker compose rm
複数リソースの一括削除
compose定義ファイルに基づいて、docker compose up
で作成されたコンテナや、Dockerイメージなどをまとめて全て削除する場合は、down
を利用する。
# compose定義ファイルで指定したコンテナを停止し、全てのイメージを削除する
$ docker compose down --rmi all
# ボリュームを削除しながら、全てのイメージを削除する
$ docker compose down -v --rmi all
--rmi all
:全てのイメージを削除-v
:Compose定義ファイルのデータボリュームを削除(volumeを設定している場合は忘れずに)
まとめ
- ここではコンテナの状態を変更するコマンドを紹介した
- 確認系のコマンドは別の記事で紹介する