Può essere utile, dato l’identificativo di un layer, andare a cercare in quali immagini esso è usato. Per questa semplice operazione è possibile utilizzare lo script docker-find-layer-image riportato qui di seguito.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#!/bin/bash LAYER=$1 if [ "$LAYER" = "" ]; then echo "" echo "Layer not given as first parameter" echo "" exit 1 fi OK="" echo "" echo "Looking for layer $1 in docker images..." for IMAGE in $( docker image ls | awk '{print $3}' | grep -v IMAGE ); do LAYERFOUND=$( docker inspect $IMAGE 2>&1 | grep "$LAYER" 2>/dev/null | grep Dir\" 2>/dev/null ) if [ "$LAYERFOUND" != "" ]; then IMAGENAME=$( docker image ls 2>/dev/null | grep $IMAGE 2>/dev/null | awk '{print $1 ":" $2}' 2>/dev/null ) echo "Layer found in $IMAGENAME" OK="1" fi done [ "$OK" = "" ] && echo "Layer not found in any image" echo "" exit 0 |
Una volta salvato il codice qui riportato in /usr/local/bin/docker-find-layer-image e dato i permessi di esecuzione allo script sarà possibile avviare lo script passando come parametro l’identificativo del layer ed esso fornirà informazioni a riguardo.