简体   繁体   中英

How to find the container image path based on pod name or container ID

Let's say I have a 3 node cluster (master01, node01, node02)

How can I find the running container path on node? I can see container ID by "oc describe pod"

Container ID:   docker://9982c309a3fd8c336c98201eff53a830a1c56a4cf94c2861c52656855cba3558

eg: on node 01, I can see a lot of directories under "/var/lib/openshift/openshift.local.volumes/pods/"; but not sure how this map to pod names or container names. Seems inactive container maps/mounts but how to do a sage clean up ?

Any help really appreciated. Thank you.

You can use this to list the container image by pod name:

kubectl get pods POD_NAME -o=jsonpath='{..image}'

Source: Docs

Thanks for your answers.

I have found it from another group and given below.

Method 1:

kubectl get pods <pod name> -o jsonpath={.metadata.uid}

Then look up the uid returned in /var/lib/kubelet/pods/<uid> (or /var/lib/openshift/pods/<uid> ) on the node where the pod is located.

Methods 2:

kubectl describe pod <podname>

Get the container id from there.

Then run a docker inspect <containerid> on the node

Then look up the uid returned in /var/lib/kubelet/pods/<uid> (or /var/lib/openshift/pods/<uid> ) on the node where the pod is located.

Generally, all the container filesystems + images live under your docker home directory which defaults to /var/lib/docker. You can also see if it has been custom configured by looking at the current dockerd process:

ps -Af | grep dockerd

Since you are running docker as your runtime. You can use to clean up all the garbage:

docker system prune -a --force

Basically, it prunes all the exited containers and the images that are not being used by any container.

Hope it helps!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM