2
閱讀this question,我瞭解容器使用基本映像(如Ubuntu)作爲根文件系統。現在我的問題是如果有必要下載一個基礎鏡像,如果我有完全相同的操作系統(如Ubuntu 14.04)。docker可以使用主機文件系統而不是圖像嗎?
這個基礎圖像是多餘的嗎?
閱讀this question,我瞭解容器使用基本映像(如Ubuntu)作爲根文件系統。現在我的問題是如果有必要下載一個基礎鏡像,如果我有完全相同的操作系統(如Ubuntu 14.04)。docker可以使用主機文件系統而不是圖像嗎?
這個基礎圖像是多餘的嗎?
首先,如果在容器的服務運行是靜態鏈接(如Go application),你可以COPY that app in a "scratch" container(這是一個empty one!無操作系統的話)
其次,在一個容器中的應用程序只能打system calls到主機內核,它不會看到主機的文件系統(旁邊是什麼通過安裝卷)
基礎圖像是有保證運行時會重複性:任何用戶調用(動態鏈接)會即使你已經更新/升級了你的操作系統,也可以對照完全相同的操作系統(基本映像)基礎操作系統最後,一個基礎鏡像「ubuntu」與實際的Ubuntu OS不一樣:它是一個緊湊的子集(一個根文件系統,沒有圖形化的X-11部分),它由docker和UnionFS使用,作爲容器內部的磁盤塊之一。