2017-06-22 70 views
2

有沒有辦法獲得給定圖像的泊塢窗父圖像樹?我知道 docker history IMG_NAME將爲您正在使用的當前圖片提供圖片ID,但其他所有內容均已丟失。我讀過這篇文章是爲了安全考慮而在v1.10中取出的,但它似乎是一個更大的擔憂,無法驗證最終圖像是由哪個圖像樹創建的。獲取泊塢窗圖像的父圖像

我發現的其他東西是docker save IMG_NAME -o TAR_OUTPUT.tar它可以讓你查看每一層的所有文件,但看起來很乏味。

我怎麼能保證,在給定的圖像中修改一個軟件的唯一的東西是軟件本身的安裝和配置。看起來,能夠看到用於生成每個連續圖像的Dockerfiles中的更改將是驗證這一點的簡單方法。

+0

你有沒有像'v1.0'和'v2.0'這樣的圖像創建tar文件?比較兩個tar與任何文件/目錄比較工具,如http://meldmerge.org/或任何你選擇。 –

回答

0

除了已被說明由欽塔thakar,你將不得不迭代也許幾次。

一個例子應該澄清這種

假設你想挖成一個圖像,而Dockerfile創造這一形象開始與

FROM wordpress

讓你去

https://hub.docker.com/_/wordpress/

看看Dockerfile,你注意到

https://github.com/docker-library/wordpress/blob/0a5405cca8daf0338cf32dc7be26f4df5405cfb6/php5.6/apache/Dockerfile

開始與

FROM php:5.6-apache

讓你去到PHP 5.6參考在

https://github.com/docker-library/php/blob/eadc27f12cfec58e270f8e37cd1b4ae9abcbb4eb/5.6/apache/Dockerfile

,你會發現在Dockerfile與

開始FROM debian:jessie

讓你去Debian的傑西的Dockerfile在

https://github.com/debuerreotype/docker-debian-artifacts/blob/af5a0043a929e0c87f7610da93bfe599ac40f29b/jessie/Dockerfile

,並注意到這個圖像是建立這樣

FROM scratch ADD rootfs.tar.xz/ CMD ["bash"]

所以,你需要的,如果做到這一點你想看看所有文件來自哪裏。

如果有通知的安全問題,您還需要這樣做,以便知道您是否擔心。

+0

因此,如果Docker Hub上的社區圖像沒有鏡像github上的完整DockerFile,那麼我們不可以對其進行任何類型的驗證?圖像本身不再包含獲取父圖像的信息? – snowman4839

+0

當你有一個圖像但不是Dockerfile時,你可以或多或少的重建它,看到我的Python代碼在https://stackoverflow.com/questions/35331988/docker-how-to-access-the-dockerfile-of- an-image/35332319#35332319因爲它似乎https://github.com/CenturyLinkLabs/dockerfile-from-image已損壞。但是當你在Dockerfile中看到'COPY */opt'時,你不知道哪些文件被複制了 – user2915097

+0

這似乎是複製docker歷史記錄的輸出,它返回一堆「缺失」圖層 – snowman4839