我使用Dockerfile構建碼頭圖像。在構建映像後,我對Dockerfile進行了一些基本的更改。是否有可能重建只有其他更改相同的圖像。因爲創建圖像需要很長時間,所以我不想完全構建它。提前致謝。重建相同的碼頭圖像,只有Dockerfile中的其他更改
回答
您無法使用更改重建它,您需要將永久性數據存儲在捲上。
要保存更改,但是,您可以使用commit
:
https://docs.docker.com/engine/reference/commandline/commit/
從容器的變化
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
它創建一個新的形象能夠將容器的文件更改或設置提交到 新圖像很有用。這允許您通過運行 交互式shell來調試容器,或者將工作數據集導出到其他服務器。 通常,最好使用Dockerfiles以記錄和維護的方式管理您的圖像。Read more about valid image names and tags.
提交操作將不包括裝載在容器內的卷 中包含的任何數據。
默認情況下,在提交圖像時暫停提交的容器及其進程將暫停 。這可以降低在創建提交過程中遇到數據損壞的可能性 。
是的,如果你標記你的搬運工圖像MYIMAGE,只是
FROM myimage
啓動其它Dockerfile並在此之後把你的其他更改
請注意,假定編輯/標記的圖像將來可用,例如保存在可訪問的回購站中。雖然它可能工作,但它是一個非常脆弱的解決方案,因爲它不能通過Dockerfiles或代碼回購重新創建。 – ldg
所有的碼頭工人建造工作的方式,你描述的。
唯一需要考慮的是層依賴關係。
考慮Dockerfile
FROM something
RUN cmd1
RUN cmd2
RUN cmd3
RUN cmd4
如果更改cmd1
然後所有層將被重建,因爲如果你改變3210不是隻此命令將被重建,他們可能對於不同的,以cmd1
,因爲它有不會影響任何其他層。
想想需要按什麼順序運行哪些命令 - 也許你可以通過重新排序語句來改進它。
- 1. 無法更改目錄,同時建立碼頭使用碼頭文件圖像
- 2. 在渲染()中隨機更改圖像而不更改所有其他圖像
- 3. 使用相同的名稱創建碼頭圖像
- 4. 構建與現有名稱相同名稱的新碼頭圖像
- 5. 「碼頭圖像」檢索具有相同標識但標籤不同的重複圖像?
- 6. 碼頭構建創建另一套碼頭圖像,即使構建命令是相同的?
- 7. 防止碼頭在更改代碼後從頭開始構建圖像
- 8. 圖片標籤只有在其他頁面上的主頁返回頭像不
- 9. 使用dockerfile構建圖像
- 10. Jquery - 相同的代碼,但只有其中一個工作
- 11. 使用不同的碼頭文件從源目錄中構建碼頭圖像
- 12. 如何更改只有文本里面有其他div的div
- 13. 如何根據現有圖像創建新的碼頭圖像?
- 14. 圖像大小更改(縮放)移動其他圖像
- 15. 更改圖像大小懸停,使其他圖像包裝
- 16. 如何在點擊時將圖像更改爲其他圖像?
- 17. 更改其他視圖
- 18. Dockerfile卷:本地更改不反映在碼頭
- 19. jenkins構建碼頭圖像
- 20. 如何使用相同的imageID去除多個碼頭圖像?
- 21. 不使用Dockerfile減少碼頭圖像大小
- 22. jquery很少有圖像更改爲其他圖像與淡入淡出效果
- 23. 使用相同的功能加載其他圖像卸載另一個圖像
- 24. 創建dockerfile構建新圖像
- 25. jQuery圖像交換 - 重置所有其他圖像
- 26. 使用java docker客戶端從圖像中重建dockerfile
- 27. 找到一個圖像相對於其他圖像的旋轉
- 28. 圖像與其他圖像相比的響應尺寸
- 29. 如何更改其他對象的圖像?
- 30. 如何更改onClick事件上其他按鈕的圖像?
請注意,雖然您可以執行此操作,但它對Docker有點反作用。理想情況下,您希望將任何最終更新納入Dockerfile(或卷,如果需要)。 – ldg
是的,但他碼頭提交只會反映容器而不是圖像本身。 – TheRimalaya
不正確的afaik。 – ldg