如何从DOCKER映像中查看提交消息?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (82)

我通过提交一些更改创建了一些图像。首先

sudo docker run -i -t ubuntu /bin/bash

做一些安装,退出和做了

sudo docker commit -m="my first message" innocent_dockernovice sandbox/yves:s1

重复这个过程

sudo docker run -i -t sandbox/yves:sN /bin/bash

在弹壳里做东西,离开,然后

sudo docker commit -m="what I did in step N" happy_dockeruser sandbox/yves:sN+1

现在,我想回到上一步的映像,并想列出执行以下操作的所有消息sudo docker image -m类似于git log一个。做这件事的最好方法是什么?

提问于
用户回答回答于

您可以通过对随后显示的提交散列使用docker检查来查看提交消息。要查看其中的更多内容,必须递归地进行。

$ docker commit -m "added test file" sick_morse
61efdbd141dc5fb1c289ed5151f3ce7b5985a5829bd92ba322ad6061cb1eee21
$ docker inspect 61efdbd141dc5fb1c289ed5151f3ce7b5985a5829bd92ba322ad6061cb1eee21 | grep added
    "Comment": "added test file",

这将允许您查看前3位最新评论的消息。

$ docker images -a --no-trunc | head -n4 | grep -v "IMAGE ID" | awk '{ print $3 }' | xargs docker inspect | grep Comment
用户回答回答于

我在GitHub Gist中编写了一个简单的bash脚本:

#!/usr/bin/env bash

DOCKER=`which docker`

if [ "$#" -ne 1 ]; then
  echo "Usage: $0 IMAGE"
  exit 0
fi

for commit in $($DOCKER history $1 | sed 1d | awk '{ print $1 }')
do
  content="$commit
$($DOCKER inspect $commit | tr -d '\"' | grep 'Created\|Author\|Comment')"
  echo "$content"
done

用于使用的快照:

扫码关注云+社区