2014-10-05 21 views
17

Tôi mới làm quen với docker và bắt đầu chơi với nó. Tôi đã tạo một vài hình ảnh từ việc thực hiện một vài thay đổi. đầu vớiCách xem thư cam kết từ hình ảnh trên docker

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

làm một vài cài đặt, thoát và đã

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

và repeting quá trình

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

làm công cụ trong vỏ, thoát và

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

Bây giờ tôi muốn quay trở lại hình ảnh bước trước và muốn liệt kê tất cả các thông báo đang thực hiện một loại lệnh sudo docker image -m tương tự như một lệnh git log. Cách tốt nhất để làm điều đó là gì?

+0

Bạn có thể xem thêm tài khoản của mình vào danh sách người dùng đế. Vì vậy, bạn không cần phải tiếp tục gõ sudo. https://gist.github.com/aluedeke/7977839#file-gistfile1-sh –

+0

Cảm ơn câu trả lời và mẹo của bạn. Tôi không thể quản lý để có được bản thân mình đúng trong nhóm docker. chạy từ root: 'gpasswd yves docker'. '/ etc/group' được sửa đổi một cách chính xác nhưng khi trong tài khoản của tôi, tôi chạy' docker ps -a' Tôi nhận được 'Get http: ///var/run/docker.sock/v1.12/containers/json? all = 1: quay số unix /var/run/docker.sock: permission denied' –

+0

Tôi đã sử dụng 'sudo gpasswd -a USER docker' # thay thế USER bằng tên người dùng của bạn trên Ubuntu14.04 và nó hoạt động cho tôi. Bạn cũng phải 'sudo service docker restart'. Bạn cũng có thể thử khởi động lại hệ thống và xem có giúp được không. –

Trả lời

16

Bạn có thể xem thông báo cam kết bằng cách sử dụng docker kiểm tra trên băm cam kết hiển thị sau đó. Để xem nhiều người trong số họ, bạn phải làm điều đó một cách đệ quy.

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

Tìm thấy thông tin here

Điều này sẽ cho phép bạn xem các thông điệp trong 3 bình luận hàng đầu gần đây nhất.

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

Để đơn giản, tôi đã làm một kịch bản bash đơn giản trong github ý chính: 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 

Snapshot để sử dụng:

enter image description here

+2

Cảm ơn vì điều đó. Nhưng chỉ cần được rõ ràng: không có cách tích hợp để liệt kê cam kết hình ảnh của một docker?! – Anto

4

Bạn có thể sử dụng lệnh lịch sử Docker:

$ docker history <image hash> 

Đầu ra mẫu:

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

Khi tôi làm 'lịch sử docker ', tôi không nhận được cột COMMENT. Tôi tự hỏi tại sao vậy. –

+0

Đây có phải là tính năng mới không? Nó hoạt động cho tôi, là một dòng, dường như trả lời câu hỏi, và chỉ sử dụng cài đặt docker (tôi nghĩ tiêu chuẩn) của tôi ... nhưng nó chỉ có một phiếu bầu. –

+0

Tính năng này đã tồn tại trong một thời gian. – Vasily802

Các vấn đề liên quan