[英]How docker load a diff image
我知道docker save
可以將圖像保存到 tar 並使用docker load
重新加載圖像。
例如:
我有一台機器 A 和 B。B無法連接集線器。 A 是圖像:最新,B 是圖像:基礎。
我必須將A 中的多圖像保存為某個 tar 文件,但 tar 文件太大而無法傳輸。
我可以保存在標簽或圖像ID之間的差異和B中加載差異?
不保存整個圖像,這有助於將補丁更新得更小。
使用標准 Docker 工具無法做到這一點。 docker save
的唯一選項是寫入文件而不是標准輸出的選項,並且它始終包含所有父層(和基礎圖像)。
如果您唯一的問題是傳輸映像,請考慮使用減少映像大小的技術(例如,使用多階段映像在最終映像中不包含構建時依賴項)或使用split (1) 之類的工具來破壞tar 文件分成更小的部分。
我相信docker save
tar 文件輸出與“導出圖像”API 調用相同。 可能可以手動編輯該 tar 文件以刪除圖層,並且可能有工具可以執行此操作。 (不過,這並不是一條特別主流的路徑;我幾年前研究過它,但自己沒有做過,偶爾會看到很少見的 SO 答案中提到的工具。)
在docker pull
和docker save
的標准行為之間,只創建完整的圖像鏈,原則上沒有辦法設置 Docker,這樣你就永遠不會只有圖像的“上半部分”,而沒有下面的基礎層。 手動編輯docker save
tar 文件將違反此不變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.