2017-06-05 92 views
1

我目前正在研究實驗室使用的Docker。想象一下,這是我的情況:我創建了一個Docker鏡像,然後用我的用戶名(例如myname/lab1)將其推送到Docker Hub。稍後,我的朋友拉起我的圖像,然後對其進行了一些更改,然後用他的用戶名(他的/ lab1)將其推送到Docker Hub。 我的問題是,假設我能夠將他的圖像(他/ lab1)建立在我的原始圖像上,我如何找到/列出我的朋友對我的原始圖像所做的所有更改?如何列出在拉出的Docker鏡像上執行的所有命令?

非常感謝!

+0

Stack Overflow是編程和開發問題的網站。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。另請參閱[我在哪裏發佈關於Dev Ops的問題?](http://meta.stackexchange.com/q/134306) – jww

回答

3

您可以使用docker history <image_name/id>

▶ docker history ubuntu 
IMAGE    CREATED    CREATED BY          SIZE    COMMENT 
f7b3f317ec73  5 weeks ago   /bin/sh -C#(nop) CMD ["/bin/bash"]   0 B 
<missing>   5 weeks ago   /bin/sh -c mkdir -p /run/systemd && echo '... 7 B 
<missing>   5 weeks ago   /bin/sh -c sed -i 's/^#\s*\(deb.*universe\... 2.76 kB 
<missing>   5 weeks ago   /bin/sh -c rm -rf /var/lib/apt/lists/*   0 B 
<missing>   5 weeks ago   /bin/sh -c set -xe && echo '#!/bin/sh' >... 745 B 
<missing>   5 weeks ago   /bin/sh -C#(nop) ADD file:141408db9037263... 117 MB 

才能看到完整的命令(創建者列)添加--no-trunc

但是,恕我直言,與你的朋友一起工作的理想方式應該是維護一個版本化的Dockerfile並查看那裏的變化。


如果不跟蹤與Dockerfile的更改,並使用docker commit相反,它更難以看到的變化,一個圖層添加。有關於此的建議:https://github.com/moby/moby/issues/12641,截至2017年6月,這仍是一個未決問題。

+0

嘿羅伯特,感謝您的幫助!但「歷史」命令不適用於我....我的問題是如果我的朋友(比如Tom)從Docker Hub中抽取我的centos映像(me/lab1),在其上運行容器,然後刪除用戶,然後提交更改並將其推送到名稱爲Tom/lab1的自己的帳戶。現在,如果我將Tom/lab1拖到本地計算機上,那麼「history」命令不會返回Tom在我的原始圖像上執行的「userdel」命令。 – stackoverheat

+0

Docker不知道在shell中以交互方式運行的命令。它只知道用於啓動容器的命令(這可能只是您的案例中的shell)或來自'Dockerfile'的命令。 –

+0

讓我看看是否有線索 – Robert

相關問題