一個微服務停留在一個Docker容器中。現在,假設我想升級微服務 - 例如,某些配置已更改,我需要重新運行它。重新創建Docker鏡像而不是重用 - 對於微服務
我有兩個選擇:
我可以嘗試重新使用現有的圖像,通過具有容器上運行啓動腳本,並通過讀取新的配置(如果有的話),從更新的微服務一些共享的音量。更新後,腳本運行微服務。
我可以簡單地刪除現有的圖像和容器,並創建新的圖像(新名稱)和新的容器與更新的配置/代碼。
解決方案#2對我來說似乎更加健壯。沒有「更新」過程,只有單個容器創建。
但是,讓我困擾的是,如果圖像的重新創建有一些不良的副作用?像很多懸掛的圖像或類似的東西。想象一下,在用戶使用應用程序的時間內,這可能會經常發生 - 例如,如果開發人員嘗試了某些內容,他想要使用不同的微服務配置,並且他會經常重新啓動它。但一旦配置好了,這個不會改變。此外,當我說配置我不只是意味着配置文件,而且用戶代碼等
這有什麼好運氣? – jtmarmon
好吧,我的問題不是如何使用Docker進行本地開發......它在用戶使用應用程序的生產環境中,後面是一個他們不知道的docker。現在,在這種情況下 - wdyt @jtmarmon,你的答案仍然保持不變嗎? – igr
你提到的「開發者玩耍」使你看起來像是指當地的發展。在生產中,你應該部署一個新的容器。放置一些晃動的圖像沒有什麼不妥 - 它實際上可以回滾。如果他們佔用了太多的磁盤空間,你可以用'docker rmi' –
jtmarmon