获取构建的最后一个Docker映像

bqjvbblv  于 2023-01-20  发布在  Docker
关注(0)|答案(7)|浏览(310)

此命令提供一个按上次构建时间从上到下排序的映像和容器ID列表:

docker images

我所有的docker图像都附加了hash git head提交。
结果

REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
username/play-table-of-contents-1474f94    latest              6141b8177c2f        34 minutes ago      149MB
username/play-table-of-contents-2616f5f    latest              2b5422dd91ba        About an hour ago   149MB

是否有办法只按名称获取最后一个图像?(例如:案件编号6141b8177c2f)
我试过

docker images --format "{{.Names}}"

我的最终目标是运行构建的最后一个Docker映像。
1.获取bash脚本变量中的最后一个映像名称。

  1. docker run ... $last_image ...
jm2pwxwz

jm2pwxwz1#

Docker命令docker images列出最近创建的映像
下面的命令列出了上面列表中的第一个图像。我相信你正在寻找这个命令。

docker images | awk '{print $1}' | awk 'NR==2'

您可能会从上面的命令部署映像的容器

docker run $(docker images | awk '{print $1}' | awk 'NR==2')
ssgvzors

ssgvzors2#

所有其他答案的解决方案都依赖于这样一个事实 *docker image已经按日期对输出进行了排序 *。这可能不是真的。一个一致的解决方案将是按创建日期对它们进行排序,并获得最新的一个。我使用了以下命令,这是一致的。

docker images --format "{{.ID}} {{.CreatedAt}}" | sort -rk 2 | awk 'NR==1{print $1}'

此命令按CreatedAt列对docker images命令的输出进行排序,并打印最新图像的ID

8yparm6h

8yparm6h3#

简短回答

docker run ... $(docker ps -a --format "{{.Names}}" | head -1) ...

docker ps -a按“从后到前”的顺序返回停止和运行的容器。

ktecyv1j

ktecyv1j4#

**动力 shell **

docker images --format "{{.ID}}" | select -first 1

与Docker运行一起使用的示例:

docker run -it (docker images --format "{{.ID}}" | select -first 1)

"巴什"

docker images --format='{{.ID}}' | head -1

与Docker运行一起使用的示例:

docker run -it $(docker images --format='{{.ID}}' | head -1)
41ik7eoe

41ik7eoe5#

这将返回最新构建的Docker映像的IMAGEID

docker images -q --format='{{.ID}}' | head -1

您甚至可以将其收集到变量中,并根据需要使用它:

IMAGE_ID=$(docker images -q --format='{{.ID}}' | head -1)
nkkqxpd9

nkkqxpd96#

如果要输入上次运行的Docker映像:

docker run -it $(docker images | awk '{print $3}' | awk 'NR==2') /bin/sh

docker run -it $(docker images | awk '{print $3}' | awk 'NR==2') bash
qij5mzcb

qij5mzcb7#

如果您需要从特定映像名称获取最后构建版本,您可以执行以下操作:

IMG_NAME="my-image-name"
IMG_LAST_BUILD=$(docker images | grep $IMG_NAME | awk 'NR==1{printf("%s\:%s",$1,$2)}')

echo $IMG_LAST_BUILD
#my-image-name:tag_version

相关问题