docker 的 image, container 概念大概就是出自於他使用的 aufs 檔案系統。
image 就是 DVD 類似的媒體。一般是 read only.
docker 的 'vm' 要啟動時,就以image 為base,上面疊上另一個 aufs 的 overlay。
這樣,任何的檔案修改,都只會紀錄在 aufs 上面那一層,不會改到下面的 image
所以docker 就有 image 和 container 兩種分類的命令。
docker 把放置所有 image 的地方叫 registry。
如果不另外自行配置,都會用官方的 registry (在 github?)。每個人都可以註冊帳號。之後就可以使用自己的帳號存放自己做的 image
container 一旦啟動之後,即使 exit, stop。container 的狀況依然保留著(裝過的packeg,修改的 file 部會消失),
大概是因為那個放container 上層 filesystem 的 folder 沒有刪除。
所以任何時候都可以再 star。
也因為 container 有自己要用的上層 filesystem (folder),所以整個 server 中,同樣的 container 只能有一個。
user A start 後, user B 無法再 start。
但是 user B stop 的話,user A 也會被 exit
container 狀態要保存的話,可以用 commit 命令把他變成 image。
這樣每個 user 都可以自己從這格image run 出一個 container 來。
另外,也可以用 export 命令,把 container export 成一個檔案。
當然,這格檔案就變成 image 了 (ro)
然後這個檔案可以 copy 到任何機器上,用 import 命令吃進 docker 系統,變成docker 系統的 image
-- 這樣就不用經過 docker registry server 了。
沒有留言:
張貼留言