如何查看来自docker镜像的提交消息

时间:2014-10-05 05:23:50

标签: docker

我是docker的新手,并开始玩它。 我创建了一些图片,提交了一些更改。 从

开始
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

在shell中做东西,退出和

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

现在我想回到上一步图像,并希望列出执行sudo docker image -m类似于git log命令的所有消息。最好的方法是什么?

3 个答案:

答案 0 :(得分:17)

您可以在之后显示的提交哈希上使用docker inspect查看提交消息。要查看更多这些内容,您必须以递归方式执行此操作。

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

找到信息here

这可以让您查看最近3条评论的消息。

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

答案 1 :(得分:16)

为了简单起见,我在github gist中做了一个简单的bash脚本:docker-log

#!/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

使用快照:

enter image description here

答案 2 :(得分:6)

您可以使用docker history命令:

$ docker history <image hash>

示例输出:

IMAGE               CREATED             CREATED BY        SIZE          COMMENT
02c473b152e3        9 days ago          /bin/bash         1.577 kB      modified init.sh
39a27fe266c4        9 days ago          /bin/bash         1.472 kB      modified init.sh
1a8dae63b9fe        9 days ago          /bin/bash         1.457 kB      modified init.sh