docker鏡像的文件都存在哪里 云計算中什么用來保存鏡像?
云計算中什么用來保存鏡像?Registry)Docker倉庫是用來存儲圖像的,可以理解為代碼控制中的代碼倉庫。Docker Hub提供了大量鏡像供使用。Docker倉庫是用來存放圖片的,可以理解為代碼
云計算中什么用來保存鏡像?
Registry)Docker倉庫是用來存儲圖像的,可以理解為代碼控制中的代碼倉庫。Docker Hub提供了大量鏡像供使用。
Docker倉庫是用來存放圖片的,可以理解為代碼控制中的代碼倉庫。提供了大量可供使用的鏡子。
Dock
Docker鏡像和容器的區(qū)別詳解?
當您希望一個容器做兩件事,或者讓一個Docker映像包含來自兩個不同映像的依賴庫時,您需要知道每個映像的Dockerfile。本文介紹了如何通過dockerhistory命令對Docker圖片進行逆向工程,獲取它們的Docker文件,組織成一個Docker文件并進行構(gòu)建,從而實現(xiàn)你想要做的事情。
常言道, "唐 不要多此一舉! "
使用Docker時,在建立自己的鏡像之前,最好先在DockerHub中找一些可以直接使用的鏡像進行練習(xí)。將軟件架構(gòu)分布到一系列容器中是非常有效的,每個容器只做一件事。構(gòu)建分布式應(yīng)用程序的最佳基礎(chǔ)是使用DockerHub的官方圖像,因為它們的質(zhì)量是可信的。
在某些情況下,您可能希望一個容器做兩件不同的事情。在其他情況下,您可能希望Docker映像包含來自兩個不同映像的依賴庫。如果每個圖像都有一個docker文件,這就非常簡單了。將它們組織到Dockerfile文件中并構(gòu)建它們。
但是大部分時候都是使用DockerHub上準備的圖片,不會有它們的源Dockerfile。我花時間找到了一個工具,可以合并(或展平)兩個不同的Docker圖像,而不需要它們的Docker文件。也就是說,尋找可以做到以下幾點的東西:
圖1 -
- gtmerged_image_12
/
圖2 -
之前在GitHub上有兩個相關(guān)的討論(1和2),雖然都是關(guān)閉的。
這可能嗎?
那么,有沒有一個工具可以做到這一點:docker merge image 2 image2 merged _ image?
不要!
你可以 甚至不能用下面的方法構(gòu)建Dockerfile:
來自圖像1
來自圖像2
簡而言之,你可以 不要在一個Dockerfile文件中有多個基本鏡像。比如。
但是我需要這個功能!
唯一的解決方案是獲取這些圖像的docker文件,然后將它們組織成一個文件并構(gòu)建它們。那么,我能在DockerHub上得到一個鏡像Dockerfile嗎?幸運的是,你可以。它可以 不可離線獲取(原文在線,但顯然在線時可以直接從GitHub獲取),但可以使用dockerhistory命令通過逆向工程獲取。
怎么用?
使用dockerpull從您機器上的DockerHub下載圖像。
dockerpullimage1
dockerpullimage2
然后使用dockerhistory獲取構(gòu)建兩個容器時運行的命令。
docker history-no-trunctrueimaggtimage 1-docker file
docker history-no-trunctruegimage 2g timage 2-docker file
接下來,打開這兩個文件,您可以看到每個圖像的命令堆棧。這是因為Docker圖像是由層構(gòu)建的(閱讀更多)。也就是說,您在Dockerfile中鍵入的每個命令都會構(gòu)建一個新的映像,該映像位于前一個命令生成的映像之上。所以你可以對鏡像進行逆向工程。
限制
唯一的情況是你可以 對映像進行反向工程是指映像的維護者在docker文件中使用ADD或COPY命令。您將看到這樣一行:
addfil: 1 AC 56373 f 7983 caf 22
或者add dir : cf 6 Fe 659 e 9d 21535844。
這是因為我不 我不知道維護人員在自己的機器上使用了什么本地文件,包括圖像。