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

Yve*_*las 19 docker

我是码头工人的新手并开始玩它.我创建了一些图片,提交了一些更改.开始于

sudo docker run -i -t ubuntu /bin/bash
Run Code Online (Sandbox Code Playgroud)

做了几次安装,退出并做了

sudo docker commit -m="my first message" innocent_dockernovice sandbox/yves:s1
Run Code Online (Sandbox Code Playgroud)

并重复这个过程

sudo docker run -i -t sandbox/yves:sN /bin/bash
Run Code Online (Sandbox Code Playgroud)

做贝壳,退出和

sudo docker commit -m="what I did in step N" happy_dockeruser sandbox/yves:sN+1
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*ier 18

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

$ docker commit -m "added test file" sick_morse
61efdbd141dc5fb1c289ed5151f3ce7b5985a5829bd92ba322ad6061cb1eee21
$ docker inspect 61efdbd141dc5fb1c289ed5151f3ce7b5985a5829bd92ba322ad6061cb1eee21 | grep added
    "Comment": "added test file",
Run Code Online (Sandbox Code Playgroud)

在这里找到信息

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

$ docker images -a --no-trunc | head -n4 | grep -v "IMAGE ID" | awk '{ print $3 }' | xargs docker inspect | grep Comment
Run Code Online (Sandbox Code Playgroud)


Yar*_*rco 17

为了简单起见,我在github gist:docker-log中做了一个简单的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
Run Code Online (Sandbox Code Playgroud)

使用快照:

在此输入图像描述

  • 感谢那.但是要明确一点:没有内置的方法来列出docker image的提交? (2认同)

Vas*_*802 6

您可以使用docker history命令:

$ docker history <image hash>
Run Code Online (Sandbox Code Playgroud)

样本输出:

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
Run Code Online (Sandbox Code Playgroud)