やりたいこと
Pod上にて以下のように格納されているimageIDをコンテナイメージからdockerコマンドで取得する。
$ kubectl get pod xx -n -o jsonpath='{.status.containerStatuses[].imageID}' xx@sha256:XX
環境情報
- Kubernetes 1.23
- docker version 1.13
やり方
コンテナイメージに対して以下コマンドを押下すると
docker image ls --digests
DIGESTという箇所にcontainerStatuses.imageIDに表示される値と同じ文字列が表示される。
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE ... xx xx sha256:ebbcaXX 55dXX x months ago 991 MB ...
以下、補足です。
補足
Kubernetesの以下リソースの値とコンテナイメージの突き合わせをしたい場合
$ kubectl explain pod.status.containerStatuses.imageID KIND: Pod VERSION: v1 FIELD: imageID <string> DESCRIPTION: ImageID of the container's image.
該当のコンテナイメージをinspectした際に表示される以下の値はimageIDと相違しています。
- "Id"
- "RootFS"."Layers"
- "Image"
というのも、ImageIDに表示されるのはイメージのDigestであるため、上記に記載した通りダイジェストの値を表示させています。
尚、イメージをpullした場合にも以下のように標準出力にDigestが表示されます。
# docker pull xx:xx Trying to pull repository xx: xx: Pulling from ... ...: Pull complete Digest: sha256:ebbcaXX Status: Downloaded newer image for xx:xx
以上です。