
本文首發自“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 配置對象,并在其運作時将它應用于容器。