2014-10-05 3 views
17

Я новичок в докере и начинаю играть с ним. Я создал несколько изображений из нескольких изменений. работы сКак видеть сообщение фиксации с изображений докеров

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

делает несколько установкой, вышел и сделал

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

и repeting процесс

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. Каков наилучший способ сделать это?

+0

Вы можете посмотреть на добавление учетной записи в список пользователей докеров. Поэтому вам не нужно набирать sudo. https://gist.github.com/aluedeke/7977839#file-gistfile1-sh –

+0

Спасибо за ваш ответ и отзыв. Я не могу нормально себя вести в группе докеров. побежал от root: 'gpasswd yves docker'. '/ etc/group' правильно изменен, но когда под моей учетной записью запускается' docker ps -a', я получаю 'Get http: ///var/run/docker.sock/v1.12/containers/json? all = 1: наберите unix /var/run/docker.sock: разрешение denied' –

+0

Я использовал 'sudo gpasswd -a USER docker' # заменить USER вашим именем пользователя на Ubuntu14.04, и он работает для меня. Вам также нужно перезагрузить supo-сервис-докер. Вы также можете попробовать перезагрузить систему и посмотреть, поможет ли она. –

ответ

16

Вы можете просматривать сообщения фиксации с помощью проверки докеры на хеш-передаче, отображаемой впоследствии. Чтобы просмотреть их больше, вы должны сделать это рекурсивно.

$ 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 
15

Чтобы сделать вещи простыми, я сделал простой Баш скрипт в GitHub сути: 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

Спасибо за это. Но просто для того, чтобы быть ясным: нет встроенного способа перечислить фиксации изображения докеров?! – Anto

4

Вы можете использовать команду Истории докера:

$ 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 
+0

Когда я делаю историю докеров ', я не получаю столбец COMMENT. Интересно, почему это так. –

+0

Это новая функция? Это работает для меня, это одна строка, кажется, отвечает на вопрос и использует только мою (я думаю, стандартную) установку докеров ... но у нее был только один голос. –

+0

Эта функция была там некоторое время. – Vasily802

Смежные вопросы