GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Dockerコンテナを停止する方法

このDockerチュートリアルでは、単一のDockerコンテナー、複数のDockerコンテナー、または実行中のすべてのDockerコンテナーを一度に停止する方法について説明します。 Dockerコンテナを適切に停止する方法も学習します。

Dockerコンテナーを停止するには、コンテナーIDまたはコンテナー名を次のように使用するだけです。

docker stop container_ID_or_name

docker container stop container_id_or_nameコマンドを使用することもできますが、これはコマンドに1つ追加された単語であり、追加のメリットはないため、dockerstopを使用してください。

ただし、Dockerコンテナを停止することには、特にDockerの初心者の場合は、知っておくべきことがたくさんあります。

ドッカーコンテナを停止するための実用的な例

このチュートリアルでは、Dockerコンテナの停止に関するさまざまな側面について説明します:

  • Dockerコンテナを停止します
  • 複数のDockerコンテナを一度に停止します
  • 特定の画像ですべてのDockerコンテナを停止します
  • 実行中のすべてのDockerコンテナを一度に停止します
  • Dockerコンテナを適切に停止する

それを確認する前に、コンテナ名またはIDを取得する方法を知っておく必要があります。

docker psを使用して、実行中のすべてのDockerコンテナを一覧表示できます。 指図。オプションがない場合、dockerpsコマンドは実行中のコンテナーのみを表示します。

[email protected]:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              8 minutes ago       Up About a minute                       container-2
94f92052f55f        debian              "bash"              10 minutes ago      Up 10 minutes                           container-1

出力には、コンテナ名とコンテナIDも表示されます。これら2つのいずれかを使用して、コンテナーを停止できます。

それでは、コンテナの停止に取り掛かりましょう。

1。 Dockerコンテナを停止します

特定のコンテナを停止するには、そのIDまたは名前をdockerstopコマンドで使用します。

docker stop container_name_or_ID

出力はより説明的である必要がありますが、指定したコンテナ名またはIDのいずれかが表示されるだけです:

[email protected]:~$ docker stop 1bcf775d8cc7
1bcf775d8cc7

すでに停止しているコンテナでdockerstopコマンドを使用できます。エラーや別の出力はスローされません。

docker ps -aコマンドを使用して、コンテナーが停止したかどうかを確認できます。 -aオプションは、実行中か停止中かを問わず、すべてのコンテナーを表示します。

[email protected]:~$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
1bcf775d8cc7        ubuntu              "bash"              19 minutes ago      Exited (0) About a minute ago                       container-2
94f92052f55f        debian              "bash"              29 minutes ago      Up 29 minutes                                   container-1

ステータスが「終了」の場合は、コンテナがもう実行されていないことを意味します。

2。複数のDockerコンテナを停止する

複数のDockerコンテナを一度に停止することもできます。コンテナ名とIDを入力するだけです。

docker stop container_id_or_name_1 container_id_or_name_2 container_id_or_name_3

以前と同様に、出力にはコンテナの名前またはIDが表示されます:

[email protected]:~$ docker stop container-1 container-2 container-3
container-1
container-2
container-3

3。画像に関連付けられているすべてのコンテナを停止します

これまでのところ、名前やIDを明示的に言及することで、コンテナを停止するのを見てきました。

特定のDockerイメージの実行中のすべてのコンテナーを停止したい場合はどうなりますか? Dockerイメージを削除したいが、関連するすべての実行中のコンテナーを停止する必要があるシナリオを想像してみてください。

コンテナ名またはIDを1つずつ指定することもできますが、これには時間がかかります。実行できるすべてのコンテナを、ベースイメージに基づいてフィルタリングすることができます。

IMAGE_NAMEをDockerイメージ名に置き換えるだけで、そのイメージに関連付けられている実行中のすべてのコンテナーを停止できるはずです。

docker ps -q --filter ancestor=IMAGE_NAME | xargs docker stop

オプション-qは、コンテナIDのみを表示します。すばらしいxargsコマンドのおかげで、これらのコンテナーIDは引数としてdockerstopにパイプされます。

4。実行中のすべてのDockerコンテナを停止します

実行中のすべてのコンテナを停止する必要がある状況に直面する可能性があります。たとえば、Dockerですべてのコンテナを削除する場合は、事前にそれらを停止する必要があります。

これを行うには、前のセクションで見たものと同様のものを使用できます。画像部分を削除するだけです。

docker ps -q | xargs docker stop

5。コンテナを適切に停止します

正直なところ、dockerはデフォルトでコンテナーを正常に停止します。 docker stopコマンドを使用すると、コンテナを強制的に強制終了する10秒前にコンテナを停止します。

コンテナを停止するのに常に10秒かかるという意味ではありません。コンテナがいくつかのプロセスを実行している場合、プロセスを停止して終了するのに10秒かかるだけです。

Dockerstopコマンドは最初にSIGTERMコマンドを送信します。この期間にconainerが停止すると、SIGKILLコマンドが送信されます。プロセスはSIGTERMを無視する場合がありますが、SIGKILLはプロセスをすぐに強制終了します。

SIGTERMとSIGKILLの違いをご存知だと思います。

SIGTERMとは何ですか? SIGKILLとSIGTERMの違いは何ですか?SIGTERMとSIGKILLはどちらも、Linuxでプロセスを強制終了するために使用されます。ただし、SIGTERMの使用をお勧めします。これが理由です! LinuxハンドブックAbhishekPrakash

この10秒の猶予期間は、-tオプションを使用して変更できます。コンテナを停止する前に30秒待機するとします。

docker stop -t 30 container_name_or_id

最後に…

これだけの情報がトピックをうまくカバーしていると思います。 Dockerコンテナを停止することについてはたくさん知っています。

より多くのDockerのヒントとチュートリアルをお楽しみに。ご質問やご提案がございましたら、コメント欄でお知らせください。


Docker
  1. 実行中のDockerコンテナを自動的に更新する方法

  2. 環境変数をDockerコンテナに渡す方法

  3. Dockerコンテナを一覧表示する方法

  1. DockerComposeの使用方法

  2. Dockerコンテナを接続する方法

  3. すべての Docker コンテナーを削除する方法

  1. Dockerコンテナ間でデータを共有する方法

  2. Dockerコンテナを一覧表示/開始/停止する方法

  3. Dockerコンテナを管理する方法は?ベストプラクティス