我已複製在一台電腦上建立的圖像,並將該圖像複製到另一台電腦上。 (docker 映像使用 docker save -o [images.tar] 指令儲存)
然後我在另一台機器上使用 docker loader 指令。為了運行這些映像,我是否必須將原始程式碼、Dockerfile、docker-compose.yml 檔案與映像一起傳遞?
答案1
Dockerfile 是用來建立映像的指令。建立映像後,其他人可以在沒有 Dockerfile 的情況下運行映像。
圖像本身應該包含運行應用程式的所有元件,例如二進位檔案、程式庫和任何腳本(如果您有 JavaScript 等解釋性語言,則這就是您的原始程式碼)。
docker-compose.yml 是如何運作映像的配置。這包括在何處發布連接埠以及如何安裝磁碟區等設置,這些設定不會進入映像本身。
因此,如果您已經複製了映像,那麼運行它所需的只是 docker-compose.yml。
請注意,我不建議透過儲存/載入來傳輸圖像。您會發現已經發貨的相同層再次被轉移。相反,即使在斷開連接的環境中,也可以使用註冊表伺服器運行您自己的註冊表。除了減少影像使用的磁碟空間之外,這還可以追蹤哪些層是新的並加快傳輸速度。