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

Dockerデーモンまたはコンテナが実行されているかどうかを確認する方法

Dockerはデーモンベースのアーキテクチャを使用しており、CLIはマシンまたはリモートホストで個別に実行されている長期間有効なプロセスに接続します。 CLIコマンドは機能せず、デーモンが停止すると、通常、コンテナはオフラインになります。

Dockerのデーモンが起動しているかどうかを確認して、コンテナとdockerの問題を診断できるようにする方法は次のとおりです。 指図。デーモンが実行されていない場合、dockerを使用するたびに、「Dockerデーモンに接続できません」というメッセージが表示されます。 CLI。

Systemctlで確認する

Dockerのステータスはsystemctlで確認できます Systemdをサービス管理に使用するディストリビューション。これは、Debian、Ubuntu、CentOS、RedHatなどの一般的なオペレーティングシステムの大部分を対象としています。

sudo systemctl status docker

「アクティブ」の下に表示されているものを確認します。 active (running)が表示された場合 緑色で表示されている場合、Dockerデーモンが実行されており、コンテナーが稼働しているはずです。

inactiveのアクティブ状態 サービスが停止したことを示します。 sudo systemctl start dockerを実行して起動してみてください 。ステータスがactive (running)に変わるはずです デーモンの起動後。

failedのステータスが表示された場合 赤字の場合、エラーのためデーモンを起動できませんでした。後でsystemctlに表示されるサービスの起動ログを確認する必要があります コマンド出力には通常、何が悪かったのかを解明するためのヒントが含まれています。

明らかな解決策がない場合は、デーモンをデバッグモードで手動で起動して、起動ルーチンに関する詳細情報を取得します。

sudo dockerd --debug

ホストマシンを再起動するか、systemctl restart dockerを使用してDockerサービスを再起動します 一時的な問題の軽減にも役立ちます。

プロセスの詳細の検査

実行中のDockerデーモンを確認する別の方法は、そのプロセスIDファイルを調べることです。デーモンはそのプロセスIDを/var/run/docker.pidに書き込みます 起動するたびに。このファイルが存在する場合、Dockerが実行され、CLI接続の準備ができている必要があります。

cat /var/run/docker.pid

この手法を使用して、デーモンが動作しているかどうかを確認するプログラムスクリプトを作成できます。ファイルを読み取ると、topなどのツールで使用できるIDが得られます Dockerプロセスに関する詳細情報を入手するには:

cat /var/run/docker.pid

# process id = 1000

top -p 1000

pidofを使用してプロセスIDを取得することもできます 指図。これはプロセス名を受け入れ、最初に一致するIDを返します:

pidof dockerd

# process id = 1000

# view information with top
top -p `pidof dockerd`

topの場合、マシンにはアクティブなDockerデーモンがあります dockerdに一致します 処理する。これは、docker.pidを探すよりも信頼性が高い場合があります –デーモンがクラッシュした場合、docker.pid プロセスが終了した後、取り残される可能性があります。

スタックしたプロセスファイルの処理

PIDファイルが存在する場合、デーモンは再起動を拒否します。これにより、ファイルが前回の実行から実際に孤立している場合、再起動ループでスタックする可能性があります。 dockerdを実行するとこのメッセージが表示されます :

failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid
を削除してください。

pidof dockerdを使用します Dockerが実際に停止していることを確認します。コマンドが出力を出力しない場合は続行し、実行中のプロセスがないことを確認します。

sudo rm /var/run/docker.pidを実行します 古いプロセスIDファイルを削除します。次回dockerdを実行すると、デーモンが正常に起動するはずです。 またはservice docker start

PIDファイルの問題は、仮想マシンのスナップショットを作成し、イメージから新しいインスタンスを作成するときによく発生します。プロセスファイルがスナップショットに含まれるため、新しいVMのDockerデーモンはすでに実行されていると見なします。

個々のコンテナの確認

個々のコンテナのステータスには、docker psを介してアクセスします。 指図。これにより、現在実行中のすべてのコンテナの詳細を含むテーブルが出力されます。

docker ps

docker psを組み合わせる grepを使用したコマンド 特定のコンテナがIDまたは名前で実行されているかどうかを簡単に確認するには:

docker ps | grep my-container-name

これで、出力がフィルタリングされ、選択したコンテナが表示されます。コンテナが実行されていない場合、レコードはありません。

停止したコンテナは、docker ps -aを使用して表示されます 。停止したコンテナは、docker startで開始できます コマンド:

docker start my-container

その後、コンテナは通常のdocker psに移動します 出力。 docker stop my-containerを使用して再度停止できます 。

結論

Dockerが実行されているかどうかを知りたい場合は、いくつかのオプションを検討する必要があります。オペレーティングシステムのサービスマネージャーであるdocker.pidがあります ファイル、およびtopなどの通常のプロセス検査ツール およびpidof

個々のコンテナに関しては、docker ps ホストで現在実行されているすべてのリストを提供します。コンテナの状態に関するより包括的な情報は、docker inspect container-nameで収集できます。 ネットワーク構成、ボリューム、ラベルの詳細をJSON形式で提供します。


Docker
  1. DockerコンテナにSSHで接続する方法

  2. DockerコンテナにVimをインストールする方法

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

  1. デーモンが停止したときにDockerコンテナを実行し続ける方法

  2. Dockerコンテナのタイムゾーンを変更する方法

  3. 実行中のコンテナのホスト名を指定するには?

  1. DockerコンテナでMySQLを実行する方法

  2. 実行中のDockerコンテナでコマンドを実行する方法

  3. Dockerコンテナに静的IPを割り当てる方法