最近在學習docker,初步理解了鏡像和容器的概念,但看文件和一些使用案例還是有一些地方比較迷惑。
依照docker的介紹,是可以基於基礎映像打包的,只要你有一個dockerfile就能在另外的機器上生成一模一樣的環境和依賴,那我可不可以用docker來把我現在mac上的各種開發環境和工具都打到鏡像裡,例如webstorm,chrome,等各種命令列的或可視化ide的工具,如果這樣可以的話,那不就相當於有了一個雲系統了嗎,我換了一台新機子,不用在重新裝各種工具和環境,也不用在乎是什麼系統,只要pull 這個鏡像不就行了?還是說docker只能打包那些命令列形式的依賴和應用?這塊有些困惑
ringa_lee2017-04-25 09:04:01
不可能,首先,Docker 不是一種新技術,而是很多老技術的打包組裝,你可以認為這就是一個chroot 加強版,而且嚴重依賴Linux 內核,Linux 就是內核+軟體包,而Docker 則是打包了軟體包檔案系統,至於核心則是共享的,所以,題主所說的把Mac 上各類開發環境打包到鏡像是不可能的。關於 GUI 打包到 Docker 映像中,理論上來說可行,但實際上不可能,因為 Docker 只做了標準輸入標準輸出和標準錯誤的控制台顯示,沒有 GUI 圖形介面的輸出方式。
给我你的怀抱2017-04-25 09:04:01
你想錯了, 應該是把你需要的工具做成一個鏡像。
然後在需要的環境pull 就行了。 然後利用git之類的工具管理程式碼(dokcer只管理開發環境工具)。
至於樓上說的GUI, 現在已經有方法解決了, 相關資料可以搜尋docker GUI 或 docker x11