2017-04-09 45 views
0

我有以下碼頭圖像。如何查看每個Docker鏡像的Dockerfile?

$ docker images 
REPOSITORY   TAG     IMAGE ID   CREATED    SIZE 
hello-world   latest    48b5124b2768  2 months ago  1.84 kB 
docker/whalesay  latest    6b362a9f73eb  22 months ago  247 MB 

有沒有一種方法,我可以看到我的本地系統上的每個泊塢窗圖像的Dockerfile?

Where to see the Dockerfile for a docker image?的答案對我沒有幫助,因爲它並沒有完全顯示Dockerfile,但是運行該命令來創建映像。我想要Dockerfile本身。

回答

3

據我所知,不,你不能。由於Dockerfile用於構建圖像,因此未與圖像本身一起打包。這意味着你應該對其進行逆向工程。您可以在圖像或容器上使用docker inspect,從而瞭解它的配置方式。圖像的圖層也是可見的,因爲當您拉出特定圖像時拉動它們,所以這也不是什麼祕密。

但是,您可以通過通常查看Dockerhub上圖像本身的存儲庫中的Dockerfile。我不能說大部分版本庫都附有Docker文件,但我看到的大多數版本庫都有它。

不同的版本庫維護者可能會選擇不同的方式來記錄Dockerfiles。如果自動構建已設置,您可以在資源庫頁面上看到Dockerfile選項卡。但是,當多個並行版本可用時(比如Ubuntu),維護人員通常會選擇在說明中爲不同版本的Dockerfiles鏈接。如果您在這裏查看:https://hub.docker.com/_/ubuntu/,在「支持的標籤」下(對於Ubuntu),您可以看到每個相應的Ubuntu版本都有指向多個Docker文件的鏈接。

3

由於圖像是直接從Dockerhub下載的,因此只有圖像被從碼頭集線器拖入您的機器。如果您想查看dockerfile,那麼您可以轉到docker hub並以標記格式(例如ubuntu:14.04)輸入圖像名稱和版本名稱,這將打開圖像以及Docker文件詳細信息。另外請記住,只有在圖像所有者共享Dockerfile時,才能看到它。否則不是。大多數官方圖片不會爲您提供Dockerfile。

希望它有幫助!

+0

如果我去https://hub.docker.com/search/?q=ubuntu%3A14.04我看不到官方的ubuntu:14.04圖像。相反,我看到由其他用戶創建的Ubuntu 14.04圖像。我如何搜索官方的ubuntu:14.04圖像? –

+0

這對於不同的回購有點不同。如果構建版本,您可以在存儲庫中看到Dockerfile選項卡。但是,當多個並行版本可用時,維護人員通常會選擇在自述文件中列出Dockerfiles以獲取不同的版本。如果您在這裏查看:https://hub.docker.com/_/ubuntu/,在「支持的標籤」下,您可以看到每個相應的Ubuntu版本都有指向多個Dockerifiles的鏈接。編輯:我會添加到我的答案。 –

+0

Hi @LoneLearner ...這是官方的ubuntu repo包含Ubuntu發佈的所有版本。 https://hub.docker.com/_/ubuntu/可以在以下位置找到Dockerfile:https://github.com/tianon/docker-brew-ubuntu-core/blob/1a5cb40f41ac4829d8c301ccd2cf3b7a13687a8b/trusty/Dockerfile正如您所見在官方的ubuntu頁面中,Docker文件與github相似 –