2

我正在使用docker-compose在本地(脫機網絡)上運行多容器軟件。在沒有直接連接到Docker註冊表的情況下提供軟件更新的最佳方式是什麼?使用Docker交付軟件更新

我試過2個選項(兩者都不夠): 1.提供使用docker save創建的完整Docker鏡像。非常低效 - 每張圖片高於1GB,沒有圖層優化。 2.除Docker鏡像之外還提供定製軟件,並將其映射到通用容器內的主機卷。通過這種方式,我可以提供僅定製軟件更新,並縮短需要更新Docker映像時的時間。但它遠非最佳。

有沒有什麼方法可以只提供更新的Docker圖層作爲文件的自定義軟件?任何其他想法?

感謝, 梅厄

+0

避免關於圖像的卡住,而是獲取包含Dockerfile的github存儲庫並在本地執行docker build –

+0

@ScottStensland不做的原因是要麼你不會在服務器上擁有相同的構建和測試環境,要麼你不能將建設責任推給系統管理員。此外,它會匆匆'apt'鏡像等等...... – hurturk

+0

讓你自己在ovh.com上每月$ 6美元的Ubuntu VPS服務器,並從該遠程服務器執行所有你的Docker交互......然後巨大的Docker鏡像是一個簡單的...它的救星和FAR更好地比無論您的家庭ISP有多快(無需家庭ISP可以擊敗服務器的帶寬),都可以從筆記本電腦發出Docker拉和推cmds ...還給您帶來了BEAST花生一個月的服務器...不需要一個健壯的筆記本電腦; [ –

回答

2

您有幾種選擇:

  • 設置專用網絡內的私有註冊,並讓服務器使用
  • 利用洪流協議進行得更快了,看到Docket項目
  • 如果沒有,請使用--rsyncable選項gzip保存並使用rsync而不是scp
  • 使用docker-slim減少您的最終圖像尺寸

我希望上面的幾種方法的組合就足夠好了。

+0

不幸的是(如前所述),我談論離線網絡,而不是私有云,因此所有在線工具(torrent/rsync)將沒有幫助。設置私人註冊表也無濟於事。我沒有意識到docker-slim - 會檢查出來,但如果有一個選項以某種方式升級現有的圖像與新層 - 這將是一個更好的選擇.... – Miro

+0

嗨米羅,我真的意味着離線方法以及上述所有項目的專用網絡。對於例如私人登記你不需要互聯網連接,你可以在本地機器上設置它,而其他人可以在同一本地網絡中擁有該機器的IP地址。我在回答中更新了「雲」關鍵字以防止混淆。 – hurturk

+0

對於私人註冊表(實際上我使用其中一種) - 我仍然需要在離線網絡內部播放完整圖像並將它們推入。因此,如果每個圖像使用一個容器(或少量容器),則它是不合理的基礎結構努力,這並不能解決問題。我的努力是提供一種方法,在本地持續不斷地進行軟件更新。 – Miro