前一段時間學習netcore的時候解除到了docker,感覺真是不錯的技術。百度了不少教程。因為我用windows就下載安裝了一下試試。但是沒有安裝成功,才發現 需要安裝virtualbox虛擬機,與我的hyper-v衝突。後來看新聞出了windows版的docker,把virtualbox換成了h ...
前一段時間學習netcore的時候解除到了docker,感覺真是不錯的技術。百度了不少教程。因為我用windows就下載安裝了一下試試。但是沒有安裝成功,才發現 需要安裝virtualbox虛擬機,與我的hyper-v衝突。後來看新聞出了windows版的docker,把virtualbox換成了hyper-v。也算小驚喜吧,心想如果能出原生的windows 版docker就好了。試著 註冊了個docker賬號 ,並申請內測(打腫臉充胖子),一個月過去了,也沒見給發郵件。
於是又百度了些資料,發現了 Windows Containers Documentation 這一個網站,這不就是windows版的docker嗎,讀了之後才知道,原來是真正的windows 原生 docker,基於windows內核的,不再是原來的linux虛擬機。但是目前只能運行在windows server2016 和nanoserver上,win10上我試著安裝了一下,提示“The Windows daemon requires Windows Server 2016 Technical Preview 5 build 14300 or later”。winnserver2016感覺有點龐大 ,就裝了輕量版的nanoserver,費了九牛二虎之力總算能用了。(看文章特別是教程還是得一步步慢慢的看,急不得,我當時就是用到啥看啥,安裝時遇到了多問題)。
windows版的docker提供了兩套 容器技術,一種是server container,這種和linux上的docker差不多,幾個容器可以共用主機內核,任務管理器裡面可以看到對應進程,隔離級別比較低。
另一種就是 Hyper Container ,這一種就是在外邊又加了一層虛擬機,這種能提供內核級別的隔離,容器運行在自己的內核中,主機任務管理器查看不到,其實就是一個小虛擬機,這種部署起來也不麻煩,和第一種差不多,只需要加上“--isolation=hyperv”參數就行 比如“docker run --isolation=hyperv nanoserver ping localhost -t ”。 其中naoserver是OS鏡像。下麵我們說一說 容器鏡像
容器鏡像分兩種,一種是os鏡像 另一種就是普通的容器鏡像, os鏡像由 微軟提供裡面包含os核心組件。由微軟提供。現在有兩套os鏡像:
Name Version Source Summary ---- ------- ------ ------- NanoServer 10.0.14300.1010 ContainerImag... Container OS Image of Windows Server 2016 Technical... WindowsServerCore 10.0.14300.1000 ContainerImag... Container OS Image of Windows Server 2016 Technical...
另一種就是普通的容器鏡像,這種鏡像基於os鏡像或者其他鏡像。
還有就是就是學習過程中遇到的兩個問題 :
第一個是運行nanosever上docker時候比如docker run -it... docker attach...的時候會報錯 需要用docker的遠程管理 ,具體見https://docs.docker.com/engine/security/https/
第二個是以hyper-v容器(--isolation=hyperv)的方式運行的時候提示not enough storage......我現在也不知道什麼原因。
更多內容大家還是參考 Windows Containers Documentation 。語言最好切換到英文,因為英文文章的更新日期是四月份,漢語翻譯文章的日期是二月份,相差倆個月 ,裡面的東西很多都不一樣了。