首創詮釋docker的Formulas: Windows 7 + Tiny Linux 4.19 + XFS + Vmware Workstation 15 (PRO) = super machine (docker從零開始時記,Follow me and you go)


 不少人從來沒有接觸過docker,或者僅僅是聽說過,本文試圖從原點開始深入了解docker的全貌,剖析docker的基礎概念,讓我們一起開始docker之旅~~~


開場:什么是docker

docker是一個容器平台。

這是我最直接的定義,打字間我即興查了一下wiki,引證了以上單句

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels. All containers are run by a single operating-system kernel and are thus more lightweight than virtual machines.

 目標:為什么用docker

docker可以提供即開即用的特定OS環境,並且簡化對相關OS的依賴或者部署周期

這是我的看法,互聯網工作者幾乎99.9%都是以App或者Service作為導向,而實際使用中docker不僅僅是為了快速部署,容災熱備,換句話說docker不僅僅是和應用相關

docker適合一切以環境導向的聯合部署作業(TASK-oriented)

例子:一個簡單的網絡型app和這個app依賴的復雜網絡設置

例子:一個簡單的用戶態服務和一個復雜的定制化LINUX OS,如OPENWRT

例子:一個簡單的源碼文件夾和一個復雜的跨架構工具鏈

概念:docker的邏輯結構

docker是vm的包裝,docker-machine是docker開始的地方,這里存在並且一直被忽視一個非常關鍵的適配橋接:driver

machine的特性start/stop和driver的模型決定了另一端一定存在一種虛擬化支持,也就是說docker不是虛擬化的全部而只是一個名詞的概要,docker離不開虛擬化

理由非常簡單而且明確:docker-machine和dock-cli到組成的engine,編譯88%以上的源碼語言go.

體驗:從WINDOWS 10到WINDOWS 7不同的docker產品,一樣的基礎構成

-跟隨docker for windows一路走來,docker以非常勻速的方式在不停演化,一切都在意料之中

Docker Desktop for Windows是伴隨着Hyper-V(win 7無緣的本質)的聯合體,這里誕生出一個moby,作為整個產品的特異化核心

Docker Desktop for Mac是伴隨着linuxkit+qemu的聯合體,這里又又誕生出一個moby,作為整個產品的特異化核心

Docker Toolbox是伴隨着Docker Desktop發展的棄嬰(巨大的甲骨嬰),本文,我們(我和我的看官們)將拋棄一個時代失敗品Oracle VM VirtualBox,抽絲剝繭boot2docker,迎來本篇的內涵Vmware

深化:在Window 7上非常規的使用Vmware Workstation和docker

如果你僅僅猜到了開始,看到我blah-blah-blah碼了幾百字就應該會猜到,hehe以下都是精華濃縮版,因為困了,要睡覺了

長話短說,短話精縮,Win 7上使用workstation太通常了,稍微有一些虛擬化經驗的都知道微軟有Virtual PC.而它的對面就是Vmware.

顯然Virtual PC挑不動docker這根大梁所以Hyper-V才能獨樹一幟(沒有細分的產品)

准備好docker vmware driver就開始吧,我用的是大家不太常見的driver,沒有任何start說明

我的docker和vmware都沒有安裝在缺省路徑,這時必須要動動腦筋,soft/hard link可以解決問題

我的超高T級HGST氦氣盤沒有在缺省路徑,所以我們准備把VM放在這個倉儲上必須提供storepath的環境變量,我在go文件中確認過cli上下文,或者系統級別都提供支持

我的docker動輒幾百G,從export容器的從容不迫到更新image:latest,tar到文件,4.14kernel必然的某些特定錯誤,不難看出4.19的適用面更廣也支持度也高於通俗的4.14kernel

XFS提供了很好的並行IO性能

關鍵語句是修改start.sh執行${DOCKER_MACHINE}" create -d vmware --vmware-boot2docker-url="file://\????????.iso",此處應有掌聲,因為經歷了幾次失敗后我發現失敗的路徑是docker的安裝盤,所以可以逃避失敗刪除boot2docker-url在覆蓋cache后等一段時間,或者如上所示干脆把盤符省去,后面的路徑都是有效的,不知道是不是start.bat沒有問題

當然可以看一下創建時的調試輸出,一般不看也是一件很省心的事情,應該一切順利

env可以輸出環境變量,cmd/ps可以看到SET版本,bash看到export版本

然后在困意中,我貼出本文最佳,之2幅圖片在結尾,一如既往,所有的內涵都在圖片里,所有的內涵都在圖片里,所有的內涵都在圖片里

提前 To be continued.

(睡了還爬起來補充,忘了的內容,非常重要,不嵌在上面了,最近Docker Desktop for Windows提供了WSL的支持,請遵循我的最佳實踐不用的時候關閉,關閉后台)

 


 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM