在 Windows 内核上运行 Docker 靠谱吗?专家六问六答帮你解惑!
本文首發(fā)自“Docker公司”公眾號(hào)(ID:docker-cn)
編譯丨小東
每周一、三、五 與您不見(jiàn)不散!
上周三,我們?yōu)榇蠹規(guī)?lái)了新一期的網(wǎng)絡(luò)研討會(huì)——不改代碼!看 Docker 如何將15年前的應(yīng)用遷移到容器運(yùn)行。現(xiàn)場(chǎng)我們從觀眾那里得到了一些非常棒的問(wèn)題,但是由于時(shí)間有限我們并沒(méi)有在會(huì)上一一回答所有的問(wèn)題。今天我將在這里為大家總結(jié)6個(gè)具有代表性的問(wèn)題,供大家學(xué)習(xí)參考。
問(wèn):當(dāng)我們?cè)?Windows 上運(yùn)行 Docker 時(shí),它是真正的容器化嗎?還是說(shuō)它只是通過(guò) API 進(jìn)行通信?
答:它是真正的容器化!早在2016年9月,Docker 就與 Microsoft 合作發(fā)布了 Windows Server 2016 版本,從那時(shí)起 Windows 內(nèi)核就已經(jīng)支持容器了。當(dāng)您運(yùn)行一個(gè) IIS 網(wǎng)站的 Docker Windows 容器時(shí),您可以看到在主機(jī) Windows 服務(wù)器上運(yùn)行的 w3wp.exe 工作進(jìn)程,它是一個(gè)進(jìn)程級(jí)隔離。
問(wèn):我們可以從 Docker Windows 容器的 Azure 存儲(chǔ)中進(jìn)行讀取/寫入嗎?
答:當(dāng)然可以!Docker 是一種運(yùn)行應(yīng)用程序的新方法,在 Docker 容器中,應(yīng)用程序的內(nèi)容是相同的。運(yùn)行在 Docker 企業(yè)版中的 Docker Windows 容器擁有與主機(jī)服務(wù)器相同的網(wǎng)絡(luò)訪問(wèn)權(quán)限,因此您可以從云 VM 或數(shù)據(jù)中心處訪問(wèn) Azure 存儲(chǔ)。
問(wèn):我如何知道要使用哪個(gè) Microsoft 的基礎(chǔ)服務(wù)器和功能(服務(wù)器核心與Nano、ASP 和 dotnet等)?我需要詳細(xì)了解我的應(yīng)用程序嗎?有沒(méi)有什么簡(jiǎn)單的方法可以讓我的 Windows 應(yīng)用程序識(shí)別出這一點(diǎn)?
答:第一種策略是在 Windows Server Core 之間,它幾乎是 Windows Server 2016 體驗(yàn)減去UI和Nano服務(wù)器,但它僅支持64位應(yīng)用程序和某些應(yīng)用程序的運(yùn)行時(shí)。
如果您知道應(yīng)用程序使用的運(yùn)行時(shí),那么您可以使用構(gòu)建在 .NET Framework 或 .NET Core 其中一個(gè)上的 Microsoft 鏡像。否則,您還可以編寫一個(gè) Dockerfile 文件來(lái)復(fù)制當(dāng)前的部署過(guò)程。您還可以點(diǎn)擊文尾處“閱讀原文”查看關(guān)于如何將 Windows 應(yīng)用進(jìn)行容器化改造的更多詳情。
問(wèn):假設(shè)我想部署一臺(tái)人們可以在 RDP 中運(yùn)行 Excel 的虛擬機(jī),這是否可以與 Windows Server Core 一起使用呢?
答:不可以!Windows Server Core 鏡像中沒(méi)有 Windows UI。Docker 用于運(yùn)行沒(méi)有圖形 UI 的服務(wù)器應(yīng)用程序 —— Web服務(wù)器、REST API、數(shù)據(jù)庫(kù)和控制臺(tái)應(yīng)用程序。Microsoft 最近發(fā)布了一款支持 GU I應(yīng)用的新的 Windows Docker 鏡像,但目前尚不清楚它是否會(huì)支持 RDP。
問(wèn):您能談?wù)勱P(guān)于 WinForm 和 WPF 應(yīng)用程序嗎?
答:它們現(xiàn)在不適合Docker容器,因?yàn)槿萜髂壳安恢С?Windows GUI 子系統(tǒng)。您可以使用 Docker 構(gòu)建和分發(fā)這些應(yīng)用程序,但無(wú)法在容器中運(yùn)行 Window s客戶端應(yīng)用程序。
**問(wèn):請(qǐng)?jiān)敿?xì)說(shuō)明如何將舊式配置(XML)更改為新的環(huán)境變量?我們應(yīng)該更改舊的應(yīng)用程序嗎?或者編寫一個(gè)從 Env 變量構(gòu)造 XML 的中間應(yīng)用程序?
**
答:最好的選擇是堅(jiān)持使用 .NET 配置模型并使用 XML 文件,這樣您就不必更改應(yīng)用程序。您可以在 Docker 鏡像中打包默認(rèn)配置文件以進(jìn)行開(kāi)發(fā),這樣開(kāi)發(fā)人員就可以通過(guò)運(yùn)行沒(méi)有額外設(shè)置的容器來(lái)運(yùn)行應(yīng)用程序。然后,您可以將 XML 文件保存為集群中的 Docker 配置對(duì)象,并在其運(yùn)行時(shí)將它應(yīng)用于容器。
總結(jié)
以上是生活随笔為你收集整理的在 Windows 内核上运行 Docker 靠谱吗?专家六问六答帮你解惑!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Django之路--第一篇
- 下一篇: (转)Paper list of Met