ドッカーが実行されているかどうかを確認する方法


96

私はドッカーが初めてです。docker用の簡単なスクリプトを書いています。dockerが実行されているかどうかを確認する必要があります。コンテナ名で確認するコマンドはありますか


3
docker psなどの任意のdockerコマンド(docker -vを除く)
Glen Pierce

docker attach containerName
マティア恐竜2017年

または試してみる docker ps
マティア恐竜

2
sudo systemctl status docker
Duk

docker ps-----このコマンドは、実行中のコンテナのみを表示します
Suhaib

回答:


101

特定のコンテナーを探している場合は、次のコマンドを実行できます。

if [ "$( docker container inspect -f '{{.State.Running}}' $container_name )" == "true" ]; then ...

クラッシュループにあるコンテナの問題を回避し、継続的に再起動してコンテナが表示されないようにするには、Statusフィールドをチェックして上記を改善できます。

if [ "$( docker container inspect -f '{{.State.Status}}' $container_name )" == "running" ]; then ...

dockerdがローカルマシンで自分自身を実行しているかどうかを知りたい場合、systemdがインストールされていれば、次のコマンドを実行できます。

systemctl show --property ActiveState docker

docker infoまたはdocker versionでdockerに接続することもできます。デーモンが利用できない場合、エラーが発生します。


どのようにbashスクリプトのステートメントのdocker inspect …中に入れifますか?
フランソワ・ロメイン

15
if [ $(docker inspect -f '{{.State.Running}}' $container_name) = "true" ]; then echo yup; else echo nope; fi
BMitch 2017

2
docker inspect -f '{{.State.Restarting}}' $container_nameコンテナーを再起動ポリシーで起動するので使用しますが、ここでは「true」を避けたいものです。
stav meir

4
ifコンテナーが実行されていない場合、bashとdockerの両方が上記のステートメントに対して文句を言います。これは、偽の場合のために、不要なバリを隠します: if [ "$(docker inspect -f '{{.State.Running}}' ${container_name} 2>/dev/null)" = "true" ]; then echo yup; else echo nope; fi
トレバー

1
@MarcoLackovicは、上の「あなたはsystemdをインストールしました」の部分を見逃したようです。
BMitch

43

私は結局使用しました

docker info

Dockerエンジンが実行されているかどうかをbashスクリプトで確認します。


4
この答えは過小評価されています。それはクロスプラットフォームであり、すぐに合格/不合格になります。
アンディフレミング

docker info > /dev/null 2>&1出力が必要ない場合
buggymcbugfix

22

次を使用してドッカーの状態を確認できます: systemctl is-active docker

  ~  systemctl is-active docker
active

次のように使用できます。

  ~  if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi
is alive :)

  ~  sudo systemctl stop docker

  ~  if [ "$(systemctl is-active docker)" = "active" ]; then echo "is alive :)" ; fi
 * empty response *

これは質問に答えません。「コンテナ名で確認する」
jens.klose

ええ、コンテナはあなたが使用する必要があります実行されているかどうかを確認するために、質問があいまいなようだdocker ps --filter name=pattern:あなたは、このフラグを追加するだけの状態をチェックするために、出力をフォーマットすることができ、--format {{.Status}}
エルナン・ガルシア

15

すべてのコンテナを一覧表示します。

docker container ls -a

ls=リスト
-a=すべて

「ステータス」列を確認してください


1
それは私が必要とするものです、それはそれがすべてのプラットフォームで動作するためです!!
Rolljee

簡単でシンプル... WORKED。
RMati

14

OS Xユーザー向け(Mojave 10.14.3)

これは、Dockerが実行されているかどうかをテストするためにBashスクリプトで使用するものです

# Check if docker is running
if ! docker info >/dev/null 2>&1; then
    echo "Docker does not seem to be running, run it first and retry"
    exit 1
fi

1
これをリファクタリングしてif [[ $? -ne 0 ]]アンチパターン
Tripleee

7

Dockerが実行されてdocker -vいるdocker ps場合など、任意のdockerコマンド(を除く)は有効な応答を受け取ります。それ以外の場合は、「Dockerデーモンは稼働中ですか?」というメッセージが表示されます。

タスクマネージャを確認することもできます。


7

完全なコンテナ名がわからない場合があります。この場合、これは私にとってうまくいきました:

if docker ps | grep -q keyword
then 
    echo "Running!"
else
    echo "Not running!"
    exit 1
fi

すべての実行中のコンテナープロセスを一覧表示します(docker ps -a実行中のものも表示されませんが、それは私が必要とするものではありません)。特定の単語(grep一部)を検索し、名前に次のものが含まれる実行中のコンテナーが1つも見つからなかった場合は単に失敗しますキーワード。



5

このコマンドsystemctl status dockerで、Dockerのステータスを確認できます。あなたが使用することができます起動する場合systemctl start dockerの代わりに、systemctlあなたはまたして試すことができserviceservice docker statusかつservice docker startそれぞれ。


5
この回答は、エンドユーザーがsystemdinitとして使用していることを前提としています。
ラファエル

systemctl status dockerDockerサービスが実行されていることを正しく表示します。ありがとうございました。
imsrgadich

3

次のコマンドを使用して、特定のDockerコンテナーが実行されているかどうかを確認することもできます。

docker inspect postgres | grep "Running"

このコマンドは、たとえば私のpostgresコンテナが実行中かどうかをチェックし、出力を「実行中」として返します:true

お役に立てれば。


これはまさに私が探していたものです。そしてそれは機能します。(反対票を投じた人々が理由を言うと、初心者がより良いSOエチケットを学ぶことができるので、それは良いことです。:))
allenjom

私は否決が、「postgresのエラー:そのようなオブジェクト」しませんでした
ゲド

3

実行:

docker version

docker が実行されている場合は、次のように表示されます。

Client: Docker Engine - Community
 Version:           ...
 [omitted]

Server: Docker Engine - Community
 Engine:
  Version:          ...
 [omitted]

docker が実行されいない場合は、次のように表示されます。

Client: Docker Engine - Community
 Version:           ...
 [omitted]

Error response from daemon: Bad response from Docker engine


1

Macでは画像が表示される場合があります。

ここに画像の説明を入力してください

Dockerアイコンを右クリックすると、次のように表示されます。

ここに画像の説明を入力してください

あるいは:

docker ps

そして

docker run hello-world


0

SSH.Runをチェックインする方法:

systemctl

応答の場合:D-Bus接続の取得に失敗しました:操作は許可されていません

そのDockerまたはWSLコンテナ。


0

docker ps -a

すべてのDockerコンテナーが生きているか死んでいるかを確認できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.