快速入門AWS CLI與AWS PowerShell
因工作所需,且沒有測試區可以玩,就自己註冊了一個 AWS 免費帳戶,需要有 Email、手機、信用卡三項。基本上都是填完資料後按「下一步」,不過,最後驗證手機門號時,我只有按「撥打電話」才成功,其他 SMS 之類的我都沒有成功。
因工作所需,且沒有測試區可以玩,就自己註冊了一個 AWS 免費帳戶,需要有 Email、手機、信用卡三項。基本上都是填完資料後按「下一步」,不過,最後驗證手機門號時,我只有按「撥打電話」才成功,其他 SMS 之類的我都沒有成功。
在 安裝 PowerShell - Active Directory Module 解決 AD 大小事 裡有介紹 Windows 10 如何安裝 RSAT 工具,以取得 Windows 10 的 PowerShell - Active Directory Module 的功能,不過,按照原始連結你會發現,只取能得 Windows 10 1709、1803 版本安裝檔,在新的筆電 Windows 10 v1903 上,下載的安裝檔都無法使用,找了一會兒在「安裝需知」才看到:
Starting with Windows 10 October 2018 Update, RSAT is included as a set of "Features on Demand" right from Windows 10. Do not download an RSAT package from this page. Instead, just go to "Manage optional features" in Settings and click "Add a feature" to see the list of available RSAT tools. Select and install the specific RSAT tools you need. To see installation progress, click the Back button to view status on the "Manage optional features" page
原來 RSAT 工具在 Windows 10 1809 之後的安裝有所改變。文件可參考:Available Features on Demand。
在某些時間,在進行 Docker 與 Container 偵錯時,真的已經查到完全沒有頭緒時,總會把問題定位「是否是 Docker 本身的蟲呢?」在導入 Docker 之後,真的碰過幾次 Docker 本身的問題,都是查了很久才在 Github Issue 上查詢到一些線索,最久等超過一年以上才放出修正。當我們想知道 Docker 本身狀態時,你會發現,就 Docker CLI 都是偏 Container 的操作,docker logs
、docker events
…好像沒有可以取得 Docker 本身偵錯資訊的 CLI。
如果要取得 Docker 本身的偵錯訊息,有兩種方式,一是使用指令進行 Debug Mode,一是使用 daemon.json 組態指定 Debug Mode。
在使用 multi-stage builds 進行建置 .NET / .NET Core 應用程式時發現一個有趣的事,在 docker build
內進行 nuget.org 還原時可正常還原套件。但如果是使用到 Private Nuget Service 時,例如,我們採用的是 Azure Artifacts - NuGet 服務,就會取得一堆紅色的錯誤訊息:
Errors in packages.config projects
Unable to find version '2018.8.2.3' of package 'KingXXXX.YYYYYYYYYYor'.
https://api.nuget.org/v3/index.json: Package 'KingXXXX.YYYYYYYYYYor.2018.8.2.3' is not found on source 'https://api.nuget.org/v3/index.json'.
Unable to find version '2017.10.17.1' of package 'KingXXXX.YYYYYYYYYYYYYYFramework'.
https://api.nuget.org/v3/index.json: Package 'KingXXXX.YYYYYYYYYYYYYYFramework.2017.10.17.1' is not found on source 'https://api.nuget.org/v3/index.json'.
Unable to find version '2018.7.24.2' of package 'KingXXXX.PPPPService'.
https://api.nuget.org/v3/index.json: Package 'KingXXXX.PPPPService.2018.7.24.2' is not found on source 'https://api.nuget.org/v3/index.json'.
NuGet Config files used:
C:\Users\ContainerAdministrator\AppData\Roaming\NuGet\NuGet.Config
Feeds used:
https://api.nuget.org/v3/index.json
在受管制的網路環境,需要在 Windows 容器內去安裝 MSBuild 工具,MSBuild 工具大約區分二個版本,Build Tools 2015 與 Build Tools for Visual Studio (2017, 2019)。
公司新開發機筆電明顯卡頓,而且時常出現螢幕閃黑數十秒後還原。原先不太在意,但頻率明顯增加的趨勢。一段時間過後發現,此現象在啟動 Docker for Windows 之後非常明顯。在啟動 Windows Container 失敗的錯誤訊息:The paging file is too small
引發我的好奇。
首先,這台開發機有 24 GB RAM,啟動 Docker for Windows 後整體使用率約 7 成(Windows Container 因為有機會開 SQL Server 容器,所以習慣設定 4096 MB),也就是使用約 16 - 17 GB 左右,剩下也還有接近 7 GB 的記憶體空間。我知道 Paging 是指分頁檔,但通常分頁檔應該是實體憶體體不足才會產生與使用。怎麼會說不夠呢?
看過就好,請不要跟著做。
在處理一個 Docker 問題時,發現 Windows 系統日誌裡有非常大量的 disk 警告:
PS C:\> Get-EventLog -LogName System -EntryType Warning -Source disk -Newest 10 | fl
Index : 636983
EntryType : Warning
InstanceId : 2147745950
Message : Disk 19 has the same disk identifiers as one or more disks connected to the system. Go to Microsoft's support website (http://support.microsoft.com) and search for KB2983588 to resolve the issue.
Category : (0)
CategoryNumber : 0
ReplacementStrings : {\Device\Harddisk19\DR368, 19}
Source : disk
TimeGenerated : 11/29/2019 3:15:49 PM
TimeWritten : 11/29/2019 3:15:49 PM
UserName :
訊息說明,有大量的 disk 有著相同的 identifiers,請參考 KB2983588 來決解問題。
當我們採用含 IIS 功能的 Windows Container 後(例如,Windows IIS、ASP.NET等),有時需要查詢或操作 IIS,未經組態的 IIS 容器並無法直接使用如 IIS 管理員等 GUI 工具來連線管理。還是可以透過內建 iisreset.exe 與 appcmd.exe 來進行查詢與管理。
某一批新 VM 主機在安裝了 Microsoft Monitoring Agent(MMA)之後,出現奇怪的現像,在 Log Analytics 裡,除了 Perf (效能計數器) 項目,其他查詢都很正常。本來方向一直在 MMA 打轉,查了許久,終於找出原因:
Get-Counter -ListSet * | Sort-Object -Property CounterSetName | Format-Table -AutoSize
Get-Counter -ListSet * | Where-Object -FilterScript {$_.CounterSetName -eq "Process" -or $_.CounterSetName -eq "Memory" -or $_.CounterSetName -eq "LogicalDisk"}
在公司 Windows 10 開發機上,當 Docker 採用 Process Isolation 執行時,畫面停止不動,無法繼續往下執行。
在公司 Windows 10 開發機上進行 Windows Container for GPU 測試時,在進行 docker build
DirectX 範例時,不斷出現 timeout 的錯誤。連指定容器 DNS 都用上了,還是不行。
偵錯了好久才想到,公司網路環境特別,內部設備上網需包含一張特別的憑證。原本開發機已包含此憑證,上網正常,本以為容器只是透過本機 NAT 出去,應該只是借道而行,結果是不得其門而入。