此命令提供按上次构建时间从上到下排序的图像和容器ID列表:
docker images
我的所有docker镜像都附加了hash git head commit。
结果
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镜像。要做到这一点,我需要
docker run ... $last_image ...
答案 0 :(得分:3)
简答
docker run ... $(docker ps -a --format "{{.Names}}" | head -1) ...
docker ps -a
按顺序" Last to First"返回已停止和正在运行的容器。
答案 1 :(得分:2)
Docker命令docker images
列出最近创建的图像。
以下命令列出上面列表中的第一张图片。我相信你正在寻找这个命令。
docker images | awk '{print $1}' | awk 'NR==2'
您可能会从命令
部署图像的容器docker run $(docker images | awk '{print $1}' | awk 'NR==2')
答案 2 :(得分:1)
Powershell
docker images --format "{{.ID}}" | select -first 1
与docker run结合使用的示例:
docker run -it (docker images --format "{{.ID}}" | select -first 1)
重击
docker images --format='{{.ID}}' | head -1
与docker run结合使用的示例:
docker run -it $(docker images --format='{{.ID}}' | head -1)
答案 3 :(得分:0)
所有其他答案的解决方案都依赖于 docker image 已经对输出进行排序的事实。这可能不正确。一致的解决方案是按创建日期对它们进行排序,并获取最新的日期。我使用了以下命令,这是一致的。
docker images --format "{{.ID}} {{.CreatedAt}}" | sort -rk 2 | awk 'NR==1{print $1}'
此命令对docker images命令的输出进行排序,并按CreatedAt
对其进行排序,并打印最新映像的ID。