Linux | The Will Will Web

The Will Will Web

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

使用 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 容器,並分享幾個常用的工具命令與使用範例。

... 繼續閱讀 ...

使用 WSL 2 打造優質的多重 Linux 開發環境

由於微軟這次推出 WSL 2 全新架構,可以讓你將 Linux 完整的跑在一個羽量級的 Hyper-V 虛擬機器中,不但可以用有完整的 Linux 核心、完整的 system call 相容性、啟動時花費更少的記憶體,也大幅提昇了檔案 I/O 存取的效能與網路管理的便利性。這篇文章將帶你一步一步認識 WSL 2,並且打造出優質的多重 Linux 開發環境。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

如何進入 Docker Desktop 的 MobyLinuxVM 並調整系統參數 (WSL 2)

昨天在 Docker Desktop 2.3.0.2 (45183) 啟用 WSL 2 支援之後,我原本跑在本機 Docker 的 Elasticsearch 就無法啟動了。從 log 下去看,會感覺是記憶體不夠的問題,但是 Docker Desktop 搭配一個較為輕量的 WSL 2 核心引擎,因此從 Docker Desktop 的 Settings 介面卻怎樣也找不到調整 CPU & Memory 的地方,卡了十幾分鐘才找到解決辦法。

... 繼續閱讀 ...

如何使用 OpenSSH 手動打造類似 ngrok 或 serveo 等反向 TCP 通道服務

今天是台北《ASP.NET Core 3 開發實戰:從入門到進階》課程最後一天,今天的教學內容包含了 SignalR 聊天室應用程式實作,我在解說完開發過程後,原本想透過 serveo.net 線上服務,讓我正在本機跑的 SignalR 網站可以讓全班同學一起連上來壓力測試,結果該網站因為近期被有心人士濫用,導致關站數日,所以就暫時沒辦法使用。晚上回家後,特別研究了一下 OpenSSH 的反向 TCP 通道功能,發現這已經非常夠用,特別撰文紀錄設定的心得。

... 繼續閱讀 ...

介紹好用工具:WSLtty (Mintty as a terminal for WSL)

Windows 下的任何命令列工具,都是基於傳統 Windows Console 介面進行互動,你很難想像 Windows Console 的原始碼已經超過 30 年沒有更新過,所以當 WSL 加入 Windows 之後,所遇到的挑戰比你想想的大許多,更新的速度也非常慢,目前也只有 Windows Insider 版本才能體驗新的功能。本篇文章我將分享幾個我曾經遇到過的問題,還有介紹 WSLtty 工具,幫助你徹底解決這些難題。

... 繼續閱讀 ...

拯救 Azure Linux 虛擬機器大作戰:透過執行命令緊急修復問題

最近幫客戶在 Azure 雲端服務架設一台 Linux 主機,當所有服務設定完成後,請客戶登入接著進行後續設定調整。結果在開帳號給客戶的過程中,卻不小心把 sudoers 的格式寫壞,導致連我自己都無法 sudo 成管理者,整台機器完全無法管理,當場傻眼!本篇文章要來分享一個急救良藥,在 Azure 上管理 Linux VM 有絕招,任何錯誤的設定都可以輕鬆解決!

... 繼續閱讀 ...

如何重新編譯 GNU Bash 解決 CVE-2014-7169 安全漏洞

就在幾天前 National Vulnerability Database (NVD) (美國國家弱點資料庫) 發佈編號 CVE-2014-6271 的弱點通報,該弱點指出在 Linux / Unix / MAC OS X 等作業系統中內建的 GNU Bash 在 4.3 版以前(含4.3版),皆存在一個能夠遠端執行任意程式碼的漏洞。雖然 GNU Bash 緊急在一天內提供了修補程式 (安全性更新),版本號為 4.3 bash43-025,但是問題並沒有解決,所以 NVD 又再緊急發布了一份 CVE-2014-7169 弱點,目前最新版 Bash 的修補更新已經推出,本篇文章教大家如何重新編譯 GNU Bash 套件!

... 繼續閱讀 ...

如何將現有 PieTTY 轉換成 Portable 版本 (含站台資料轉移)

今天意外發現原來我的 PieTTY 有支援可攜式的版本 (PieTTY Portable),而且發現的時候還搞亂我的所有 PieTTY 站台設定,所以特別注意到目前 PieTTY 最新版的變更。本文將介紹如何將現有 PieTTY 0.4.00b14 (beta-14) 轉換成 Portable 版本,並且自動將機碼中的站台資料轉移到可攜式的 PieTTY.ini 設定檔與轉移站台資料時的注意事項。

... 繼續閱讀 ...

介紹好用工具: SSH Filesystem (簡單好用的 SSH 檔案系統)

在 Linux 底下,如果要共用一個遠端的資料夾,通常會用 NFS (網路檔案系統) 來進行分享。不過 NFS 預設要在擁有 root 權限下才能掛載 (mount) 進來,另外則是使用 NFS 使用 RPC ( portmap 或 rpcbind ) 服務來做埠號對應 (Port Mapping),也代表防火牆也要多一層設定,為了安全總有那麼一點不方便。但其實有一套好用的 SSHFS ( SSH Filesystem ) 工具,讓你只要有 SSH 登入權限,就可以輕易的將遠端資料夾直接掛載到本機,而且連一般使用者也可以使用,甚至於連在 Windows 下都可以自由掛載遠端 Linux 帳號下的任意一個資料夾,真的非常方便。

... 繼續閱讀 ...

Linux 的 /tmp 目錄變成 1MB 的 overflow 檔案系統如何解決

今天有台 Linux 系統的硬碟滿了,導致系統發生異常,將空間清出之後,大部分的程式都可以正常運作,但是一個用 PHP 寫的網站卻出了點小問題,所有功能都能運作,MySQL 資料庫也能跑,但只要上傳超過 1MB 的檔案卻怎樣也上傳不成功 (UPLOAD_ERR_CANT_WRITE),查了好久才終於發現,原來是系統的 /tmp 暫存目錄只剩下 1MB 而已,而且檔案系統為沒聽過的 overflow 這個名稱,這篇文章用來解釋這個檔案系統的由來,以及解決方法。

... 繼續閱讀 ...