(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Kubernetes/Docker】コンテナイメージからcontainerStatuses.imageIDを取得する

スポンサーリンク

やりたいこと

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

以上です。