docker里image是什么 如何將dockerimage打包?
如何將dockerimage打包?可以不,可以注冊一個dockerhub賬號,在Linux上dockerpush過去,從windows上dockerpull下來即可Docker鏡像和容器的區(qū)別詳解?當
如何將dockerimage打包?
可以不,可以注冊一個dockerhub賬號,在Linux上dockerpush過去,從windows上dockerpull下來即可
Docker鏡像和容器的區(qū)別詳解?
當想讓一個容器做兩件事情,的或使一個Docker鏡像中有來自兩個有所不同鏡像的依賴庫時,就需要知道每個鏡像的Dockerfile。本文可以介紹了怎么實際dockerhistory命令來對Docker鏡像接受反向工程,我得到它們的Dockerfile,并成員到一個Dockerfile里接著builds,最終達到利用想要做的事。
常言道,“最好別重復(fù)發(fā)明輪子!”
在可以使用Docker時,最終形成自己的鏡像之前,建議在DockerHub去尋找一些可以真接使用的鏡像做練習(xí)。把軟件架構(gòu)其分布到一系列容器中,每一個容器只做一件事情,這樣的效果的很好。統(tǒng)合分布式應(yīng)用到的建議的基石是在用不知從何而來DockerHub的官方鏡像,畢竟也可以絕對的信任它們的質(zhì)量。
在某些情況下,很有可能想讓一個容器做兩件不同的事情。而在另外一些情況下,肯定想讓一個Docker鏡像包含無論是兩個差別鏡像的依賴庫。如果有每個鏡像的Dockerfile,這是的很簡單點。將它們參與到一個Dockerfile里后再builds就行。
但這,大多數(shù)時間都在使用DockerHub上打算好的鏡像,不會有它們的源Dockerfile。我花時間找一個也可以合并(或flatten)兩個完全不同Docker鏡像的工具,當然沒有它們的Dockerfile。也就是說在找一個去做下面這件事的東西:
image1--
---gtmerged_image_12
/
image2--
此前在GitHub上有兩個相關(guān)的討論(1、2),但他它們都被直接關(guān)閉了。
這很可能嗎?
這樣的話,是否需要存在工具能像這樣的話做嗎:dockermergeimage2image2merged_image?
也沒!
你甚至是可以用下面的來形成完整Dockerfile:
FROMimage1
FROMimage2
簡言之,在一個Dockerfile里不能不能有多個基礎(chǔ)鏡像。
但是我必須這個功能!
任何的解決方法是全面的勝利這些鏡像的Dockerfile,然后把把它們內(nèi)部到一個文件中,再通過統(tǒng)合。那么,我能在DockerHub上我得到一個鏡像的Dockerfile嗎?幸運的是是可以。它不能不能離線模式某些(譯注:原文是online,但顯然gambling時這對不知從何而來GitHub的自動出現(xiàn)構(gòu)建鏡像是是可以再獲取的),但你可以建議使用dockerhistory命令,反向工程聲望兌換。
怎莫來使用?
在你的機器上在用dockerpull從DockerHub上網(wǎng)下載鏡像。
dockerpullimage1
dockerpullimage2
接著使用dockerhistory來提出最終形成這兩個容器時運行程序的命令。
dockerhistory--yes-trunctrueimagegtimage1-dockerfile
dockerhistory--so-trunctrueimage2gtimage2-dockerfile
接下來的可以打開這兩個文件,你可以清晰的看到每個鏡像的命令邏輯塊。這是是因為Docker鏡像通過層(閱讀什么許多)的來構(gòu)建體系。即你在Dockerfile中輸入的每一個命令所構(gòu)建體系的新鏡像,都是在之前的命令出現(xiàn)的鏡像之上。所以你這個可以對鏡像進行逆向工程。
沒限制
不能不能對鏡像參與反向工程的真正場景,是鏡像的維護者在他的Dockerfile中不使用了ADD或COPY命令。你會看見了這樣的話一行:
ADDfile:1ac56373f7983caf22
或ADDdir:cf6fe659e9d21535844
這是是因為真不知道能維護者在他自己的機器上,除開鏡像里建議使用了什么本地文件。