The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

在 Docker 或 Kubernetes 執行 SQL Server Linux 容器應注意記憶體限制問題

前幾天一樣在客戶端進行 Kubernetes 教育訓練的時候,發現有少部分學員無法正確部署應用程式,我們的例子是一個 ASP.NET Core 網站,搭配一個 SQL Server Linux 容器,然而在練習實作 livenessProbe 的時候,卻發現有些人怎樣都無法將 SQL Server Linux 容器啟動,但是若將 livenessProbe 設定移除,服務可以啟動。若將 Pod 中容器記憶體限制移除,服務也可以順利啟動。是不是有點詭異?這篇文章我就來說說這個來龍去脈!

... 繼續閱讀 ...

使用 Dockerfile 建置容器映象(image)時應多注意「換行符號」帶來的影響

今天使用 Visual Studio Code 的 Remote Development 將一個 .NET 6 與 SQL Server 開發環境全部放到 Docker 容器中。雖然照著文件操作都很順利,但在專案加入版控之後,問題就出現了。這篇文章我想點出現今容器化、跨平台的時代中,換行符號其實不得不面對他,否則遇到問題會無所適從。

... 繼續閱讀 ...

Windows 10 同時有兩個應用程式 LISTEN Port 7777 之靈異事件整理

昨天同事問我一個關於如何在 nginx 設定 Reverse Proxy 的問題,我在跟他說明作法之後,想說也來驗證一下,結果卻意外遇到一個網路相關的靈異事件,瞬間讓我陷入一個抓鬼情緒,花了大概一個小時左右才釐清問題。今天這篇文章我打算來說說這個狀況,相信你也會覺得毛骨聳然的。

... 繼續閱讀 ...

使用 Docker 執行 SQL Server on Linux 容器之常用工具與命令

最近因為正在進行【ASP․NET Core 3 開發實戰:從入門到進階】課程,上課的學員中使用 macOS 來學習 .NET Core 的人越來越多,當練習到 ASP․NET Core 搭配 Entity Framework Core 的時候,因為會用到 SQL Server 進行練習,所以本篇文章將分享如何利用 Docker 執行 SQL Server on Linux 容器,並分享幾個常用的工具命令與使用範例。

... 繼續閱讀 ...

當 .NET Core 執行在 Linux 或 Docker 容器中如何優雅的結束

當我們將 .NET Core 跑在 Linux 或 Docker 容器中,我們不但希望程式可以穩定的執行,當程式需要結束的時候,更應該考慮如何「優雅的結束」(Graceful Shutdown)。這部分資訊很難在 docs.microsoft.com 或 GitHub 原始碼專案中找到,本篇文章將分享 .NET Core 如何捕捉作業系統送出的 TERM 訊號,在關閉程式前可以妥善處理程式結束前該做的準備。

... 繼續閱讀 ...

建立 R 開發環境:起手式

要開始建立 R 的互動執行環境,有些安裝與設定的步驟,對於完全沒用過 R 的人來說,可能會卡關一下。我特別寫了這篇文章,紀錄建立 R 開發環境的起手式,以及執行在 Docker 的一些注意事項。

... 繼續閱讀 ...

Windows Container 版本相容性與多重架構容器映像介紹

自從 Windows 核心版本 v14393 開始,也就是 Windows Server 2016 LTSC 與 Windows 10 年度更新版,正式開始支援 Windows 容器,這意謂著企業可以開始將傳統 Windows 應用程式正式容器化,透過容器化技術隔離應用程式,最大的優勢,就是容器技術會讓應用程式不會再遇到部署環境變更導致的任何問題。不過 Windows 核心版本不斷更新,也開始出現了相容問題,本篇文章將說明各種容器相容性的解決方案。

... 繼續閱讀 ...

如何修復 Docker Desktop for Windows 各種奇怪的網路問題

Windows Container 的網路有時候會遇到一些奇怪的現象,尤其是在我這台筆電,因為實在安裝過太多版本,作業系統也升級好幾次,有時候為了演講也要調整本機網路設定,所以設定很亂也應該是正常的。這幾天我就發現升級到 Windows 10 版本 1903 之後,網路功能出了一點狀況,這次撰文的過程也徹底將 docker networking 做了深入的研究與理解,收穫頗豐!

... 繼續閱讀 ...

設定 Windows 10 (版本 1809) 的 Windows 容器預設採用 process 隔離模式

從 Windows 10 (版本 1809) 開始,Windows 容器正式支援處理序隔離模式 (--isolation=process),在這之前都只支援 Hyper-V 隔離模式 (--isolation=hyperv),這兩種模式最大的差異在於啟動速度容器隔離性。不過,雖然 Windows 10 (版本 1809) 已經支援處理序隔離,但預設值卻還是以 Hyper-V 隔離模式為主,本篇文章將說明如何將預設值切換到處理序隔離模式

... 繼續閱讀 ...

如何修正 PowerShell 執行龜速的元兇 (關閉進度列提示)

PowerShell 有個對開發人員非常不友善的預設值,就是 $ProgressPreference 這個偏好設定變數 (Preference Variables),他的預設值為 Continue,也就是 Cmdlet 執行時預設會顯示 Cmdlet 的執行進度 (如果有進度列提示的話),這個進度列提示雖然很貼心地顯示在命令提示字元上,但卻會導致 Cmdlet 執行速度徹底被拖慢,慢到非常誇張,浪費了我們寶貴的生命。這篇文章就要告訴大家如何設定與調整,以便在日後可以更有效率的執行 PowerShell 命令!

... 繼續閱讀 ...

Angular 結合 nginx 反向代理的 Docker 容器化封裝技巧

在微服務架構下,部署 Angular 應用程式與後端 Web API 應該切割成兩個不同的微服務。但具體的實現方式,通常會透過容器化技術來達成,實作上相對容易許多。像我們公司的特定專案,就是透過 Kubernetes 叢集化技術來實現這個目的。這篇文章,我將分享如何將 Angular 這類 SPA 框架,如何透過 nginx 反向代理與 Docker 容器化技術,徹底做到微服務化。將前後端分離的結果,可以幫助我們簡化 CI/CD 流程,同時降低系統之間的耦合性。

... 繼續閱讀 ...