Shell: docker コンテナがあることを確認する

Shell: docker コンテナがあることを確認する

このような場合、bashスクリプトでどのように確認しますか?

sudo docker images -q nginx

コンテナがすでに存在することを意味する結果文字列を提供します。

sudo docker images -q nginx
if [ $? != '' ]
then
    echo "existing"
else
    echo "missing

ベストアンサー1

「Best Answer」で提案したように試みたが、コンテナのIDではなく画像のIDのみを返します。コンテナが実行されているかどうかにかかわらず、常にイメージIDを返します。docker images -q "{Image Name}"

コンテナが実行されていることを確認するには、次のコマンドを適用する必要があります。

Docker ps -q -f名前="{コンテナ名}

コンテナが存在し、実行中の場合はコンテナIDを返します。存在しないか存在するが停止した場合は、空の文字列が返されます。すべての(実行中および停止した)コンテナを検索するには、次のように "docker ps"コマンドに "-a"パラメータを使用します。

Docker ps -a -q -f名前="{コンテナ名}

コンテナIDなどの他のフィールドで検索することもできます。

Docker ps -a -q -f id="{コンテナID}

詳細については、次を参照してください。公式「docker ps」ドキュメント

おすすめ記事