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