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