docker-composeとの違い コンテナ起動系 複数コンテナの生成 コンテナ起動時にDockerfileをビルドする コンテナをバックグラウンドで実行する 停止、再起動系 起動、停止、再起動 特定のコンテナのみを操作する 削除系 複数コンテナの一括削除 複数リソースの一括削除 関連記事
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 特定のコンテナのみを操作する
特定のコンテナのみを操作したい場合は、コマンドの引数にコンテナ名を指定するだけ。
# 「frontend」という名前のサービスのみを再起動する場合
$ docker compose restart frontend docker-compose.ymlのここに記載されているものがサービス。
services:
frontend: ←これ
...
backend:
...
db:
... 削除系
複数コンテナの一括削除
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を設定している場合は忘れずに)
関連記事