私はドッカーが初めてです。docker用の簡単なスクリプトを書いています。dockerが実行されているかどうかを確認する必要があります。コンテナ名で確認するコマンドはありますか
docker attach containerName
docker ps
docker ps
-----このコマンドは、実行中のコンテナのみを表示します
私はドッカーが初めてです。docker用の簡単なスクリプトを書いています。dockerが実行されているかどうかを確認する必要があります。コンテナ名で確認するコマンドはありますか
docker attach containerName
docker ps
docker ps
-----このコマンドは、実行中のコンテナのみを表示します
回答:
特定のコンテナーを探している場合は、次のコマンドを実行できます。
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に接続することもできます。デーモンが利用できない場合、エラーが発生します。
docker inspect …
中に入れif
ますか?
if [ $(docker inspect -f '{{.State.Running}}' $container_name) = "true" ]; then echo yup; else echo nope; fi
docker inspect -f '{{.State.Restarting}}' $container_name
コンテナーを再起動ポリシーで起動するので使用しますが、ここでは「true」を避けたいものです。
if
コンテナーが実行されていない場合、bashとdockerの両方が上記のステートメントに対して文句を言います。これは、偽の場合のために、不要なバリを隠します: if [ "$(docker inspect -f '{{.State.Running}}' ${container_name} 2>/dev/null)" = "true" ]; then echo yup; else echo nope; fi
私は結局使用しました
docker info
Dockerエンジンが実行されているかどうかをbashスクリプトで確認します。
docker info > /dev/null 2>&1
出力が必要ない場合
次を使用してドッカーの状態を確認できます: 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 *
docker ps --filter name=pattern
:あなたは、このフラグを追加するだけの状態をチェックするために、出力をフォーマットすることができ、--format {{.Status}}
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
if [[ $? -ne 0 ]]
アンチパターン
完全なコンテナ名がわからない場合があります。この場合、これは私にとってうまくいきました:
if docker ps | grep -q keyword
then
echo "Running!"
else
echo "Not running!"
exit 1
fi
すべての実行中のコンテナープロセスを一覧表示します(docker ps -a
実行中のものも表示されませんが、それは私が必要とするものではありません)。特定の単語(grep
一部)を検索し、名前に次のものが含まれる実行中のコンテナーが1つも見つからなかった場合は単に失敗しますキーワード。
このコマンドsystemctl status docker
で、Dockerのステータスを確認できます。あなたが使用することができます起動する場合systemctl start docker
の代わりに、systemctl
あなたはまたして試すことができservice
、service docker status
かつservice docker start
それぞれ。
systemd
initとして使用していることを前提としています。
systemctl status docker
Dockerサービスが実行されていることを正しく表示します。ありがとうございました。
次のコマンドを使用して、特定のDockerコンテナーが実行されているかどうかを確認することもできます。
docker inspect postgres | grep "Running"
このコマンドは、たとえば私のpostgresコンテナが実行中かどうかをチェックし、出力を「実行中」として返します:true
お役に立てれば。
実行:
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
基本的な目標が「Dockerの起動時にコンテナーを起動するにはどうすればよいですか?」
Dockerの再起動ポリシーを使用できます
再起動ポリシーを既存のコンテナーに追加するには:
Docker:作成済みのコンテナーに再起動ポリシーを追加する
例:
docker update --restart=always <container>