🎃

docker image のローカル存在確認

2022/02/20に公開

docker image のローカル存在確認

以下コマンドを実行すると、ローカルにある docker image のリストを取得できる。

docker image ls

特定のイメージの特定のタグがローカルに存在するか確認したいことがある。
-q オプションを指定しつつ、docker image の tag を指定することで IMAGE ID のみを出力することができる。もし存在しない場合、何も出力されない。これを使用して指定した docker image がローカルに存在するか確認できる。

具体例

ローカルに存在するもの

$ docker image ls -q ubuntu:20.04
d13c942271d6

ローカルに存在しないもの

$ docker image ls -q ubuntu:16.04

出力が空になる。

参考

$ docker image ls ubuntu
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       22.04     6795c0065f64   2 weeks ago    78.2MB
ubuntu       20.04     d13c942271d6   6 weeks ago    72.8MB
ubuntu       18.04     5a214d77f5d7   4 months ago   63.1MB
$ docker image ls -q ubuntu
6795c0065f64
d13c942271d6
5a214d77f5d7

確認スクリプト

test.sh

#!/bin/sh

TAG=$1
DOCKER_IMAGE=$(docker image ls -q $TAG)
if [ x"$DOCKER_IMAGE" != x"" ] ; then
        echo found: $TAG
else
        echo Not found: $TAG
fi

結果

$ ./test.sh ubuntu:22.04
found: ubuntu:22.04
$ ./test.sh ubuntu:16.04
Not found: ubuntu:16.04

Discussion