共用方式為


使用 [容器] 視窗

您可以使用 Visual Studio 容器 視窗來查看裝載應用程式的 Docker 容器內發生了什麼事,以及檢視容器映像。 如果您用來執行 Docker 命令來檢視和分析容器,此視窗提供方便的方式來監視及與容器互動,而不需要離開 Visual Studio IDE。

先決條件

檢視容器的相關信息

當您啟動容器化 .NET 專案時, [容器 ] 視窗會自動開啟。 若要隨時開啟 [容器] 視窗,請從 Visual Studio 功能表中選取 [ 檢視>其他 Windows>容器 ]。 您也可以使用 Ctrl+Q 開啟 Visual Studio 搜尋方塊,輸入 容器,然後選取 [容器 ] 專案。

Visual Studio 中 [容器] 視窗的螢幕快照,其中已選取左窗格中的容器,以及右窗格中選取的 [環境] 索引卷標。

視窗左側會顯示本機電腦上的容器清單。 與您目前解決方案相關聯的容器位於 [解決方案容器] 底下。 右側是具有 [環境]、[ 卷標]、[ ]、[ 磁碟區]、[ 檔案] 和 [ 記錄] 索引卷標的窗格。

當您啟動容器化 .NET 專案時, [容器 ] 視窗會自動開啟。 若要隨時開啟 [容器] 視窗,請從 Visual Studio 功能表中選取 [檢視>其他 Windows>容器],或按 Ctrl+、Ctrl+O。 您也可以使用 Ctrl+Q 開啟 Visual Studio 搜尋方塊,輸入 容器,然後選取 [容器 ] 專案。

Visual Studio 中 [容器] 視窗的螢幕快照,其中已選取左窗格中的容器,以及右窗格中選取的 [環境] 索引卷標。

視窗左側會顯示本機電腦上的容器清單。 與您目前解決方案相關聯的容器位於 [解決方案容器] 底下。 右側是具有 [環境]、[ 卷標]、[ ]、[ 磁碟區]、[ 檔案]、[ 記錄] 和 [ 詳細數據] 索引卷標的窗格。

如果您使用 Docker Compose 和 Visual Studio 2022 17.7 版或更新版本,您會看到節點樹狀結構,其中包含解決方案的父節點,以及 Docker Compose 中註冊之每個專案的子節點。

顯示 [容器] 視窗中 Docker Compose 節點的螢幕快照。

小提示

根據預設,當調試程序執行時, [容器 ] 視窗會停駐於 [ 監看 式] 視窗。 您可以輕鬆地自訂 容器 工具視窗停駐的位置。 請參閱 在 Visual Studio 中自定義視窗配置

檢視環境變數

[ 環境] 索引標籤會顯示容器中的環境變數。 您可以在 Dockerfile、.env 檔案中設定這些變數,或在使用 Docker 命令啟動容器時使用 -e 選項來設定。

備註

環境變數的變更不會即時反映。 此外,此索引標籤中的環境變數是容器上的系統環境變數,而不是應用程式本機的用戶環境變數。

[容器] 視窗中 [環境] 索引標籤的螢幕快照。

[容器] 視窗中 [環境] 索引標籤的螢幕快照。

檢視標籤

標籤 索引標籤會顯示容器的標籤。 標籤是在 Docker 物件上設定自訂元數據的一種方式。 Visual Studio 會自動設定某些標籤。

Visual Studio 中 [容器] 視窗的螢幕快照,顯示 [卷標] 索引標籤。

Visual Studio 中 [容器] 視窗的螢幕快照,顯示 [卷標] 索引標籤。

檢視埠映射

在 [] 標籤頁上,您可以檢查容器的埠對應。 知名埠口已連結,因此您可以選取連結來開啟瀏覽器並進入主機的埠位址。

[容器] 視窗中 [連接埠] 索引標籤的螢幕快照。

[容器] 視窗中 [連接埠] 索引標籤的螢幕快照。

檢視磁碟區

[ 磁碟區 ] 索引標籤會顯示容器上掛接的檔案系統節點或 磁碟區

[容器] 窗口中 [磁碟區] 標籤的截圖。

[容器] 窗口中 [磁碟區] 標籤的截圖。

檢視檔案系統

在 [ 檔案 ] 索引標籤上,您可以檢視容器的檔案系統,包括包含您專案的應用程式資料夾。 使用 [ 檔案] 索引標籤,您可以在容器的檔案系統中檢視應用程式記錄,例如 Internet Information Services (IIS) 記錄、組態檔和其他內容檔案。

[容器] 視窗中 [檔案] 索引卷標的螢幕快照。

[容器] 視窗中 [檔案] 索引卷標的螢幕快照。

備註

在 Visual Studio 2022 17.7 版或更新版本中,以 .NET 8 或更新版本為目標時,Dockerfile 可能包含 USER app 命令,指定以一般使用者許可權執行應用程式。 [ 檔案 ] 索引標籤使用相同的許可權,因此您可能無法檢視需要提高許可權才能檢視的資料夾。

若要在 Visual Studio 中開啟檔案,請按兩下檔案,或以滑鼠右鍵按兩下檔案,然後選擇 [ 開啟]。 Visual Studio 會以唯讀模式開啟檔案。

在 Visual Studio 中開啟檔案以供檢視的螢幕快照。

在 Visual Studio 中開啟檔案以供檢視的螢幕快照。

檢視記錄

記錄索引標籤會顯示docker logs命令的結果。 根據預設,索引標籤會在容器上顯示 stdoutstderr 串流,但您可以自訂輸出。 如需詳細資訊,請參閱 Docker 記錄

根據預設,[ 記錄] 索引標籤會串流記錄。 您可以選取索引標籤上的 [ 串流記錄 ] 按鈕來暫停數據流。再次選取 [串流記錄 ] 以繼續串流離開的位置。

[容器] 視窗中 [記錄] 索引標籤的螢幕快照。

根據預設,[ 記錄] 索引標籤會串流記錄。 您可以選取索引標籤上的 [ 串流 ] 按鈕來暫停串流。再次選取 [串流 ] 以繼續串流離開的位置。

[容器] 視窗中 [記錄] 索引標籤的螢幕快照。

若要清除記錄,請使用 [記錄] 索引標籤上的 [清除] 按鈕。若要取得所有記錄,請使用 [重新整理] 按鈕。

備註

當您執行 Windows 容器而不偵錯時,Visual Studio 會自動將 和 stdout 重新導向stderr[輸出] 視窗。 這些記錄接著不會顯示在 [ 記錄] 索引標籤中。

如果您使用 Docker Compose 搭配 Visual Studio 2022 17.7 版或更新版本,您可以個別檢視每個容器的記錄,或交錯成單一輸出數據流。 如果您選取方案的父節點,您會看到來自所有 Compose 專案的交錯記錄。 每一行的第一欄表示產生該輸出行的容器。 如果您只想要查看一個容器的記錄,請選取該專案的節點。

顯示在 [容器] 視窗的 [記錄] 索引標籤中交錯記錄的螢幕擷取畫面。

檢視詳細資料

[ 詳細數據] 索引標籤標會以 JSON 格式顯示容器設定的元數據和運行時間資訊。 此資訊包括環境變數、埠、磁碟區和其他運行時間設定。

顯示 [容器] 視窗 [詳細數據] 索引標籤的螢幕快照。

與容器互動

各種工作的確認對話框,例如移除容器和映像,或一次啟動超過10個容器,可能會顯示提示。 您可以使用對話框視窗上的複選框來停用每個提示。

您也可以使用工具>>>容器工具視窗的設定來啟用或停用這些選項。 如需詳細資訊,請參閱 設定容器工具

您也可以使用 [工具>>>容器] 視窗的設定來啟用或停用這些選項。 如需詳細資訊,請參閱 設定容器工具

啟動、停止和移除容器

根據預設,[ 容器] 視窗會顯示 Docker 管理之電腦上的所有容器。 您可以使用 [ 容器] 視窗中的工具列按鈕來啟動、停止或刪除容器。 容器清單會在建立或移除容器時動態更新。

若要選取多個容器,例如一次移除多個容器,請使用 Ctrl+Select。 系統會提示您確認您是否嘗試一次啟動或移除超過10個容器。 如有需要,您可以停用確認提示。

在執行中的容器中開啟終端機視窗

您可以使用 [容器] 視窗中的 [開啟終端機視窗] 按鈕,在容器中開啟終端機視窗(命令提示字元或互動式殼層)。

「容器」視窗中「開啟終端機視窗」的螢幕擷圖。

「容器」視窗中「開啟終端機視窗」的螢幕擷圖。

針對 Windows 容器,Windows 命令提示字元會開啟。 針對 Linux 容器,視窗會使用 Bash shell 開啟。

Bash 視窗的螢幕快照。

一般而言,終端機視窗會在 Visual Studio 外部開啟為個別視窗。 如果您想要將命令行環境整合至 Visual Studio IDE 作為可停駐的工具視窗,您可以安裝 Whack Whack 終端機

Bash 視窗的螢幕快照。

如果您在 Visual Studio 2022 的 17.7 版及更新版本中針對 .NET 8,Dockerfile 可以指定 USER app 指令,這表示您的應用程式會以一般用戶權限執行,而不是提升過的權限。 終端機將按照 Dockerfile 中指定的使用者開啟,預設情況下適用於 .NET 8 專案。 如果未指定任何使用者,終端機會以 root 使用者的身分執行。

將調試程式附加至容器進程

您可以使用 [容器] 視窗工具列上的 [附加至進程] 按鈕,將調試程式附加至容器中執行的進程。 當您使用此按鈕時,[ 附加至進程 ] 對話框隨即出現,並顯示容器中執行的進程。

[附加至進程] 對話框的螢幕快照。

[附加至進程] 對話框的螢幕快照。

您可以附加至容器中的受控進程。 若要尋找另一個容器中的進程,請選取 [附加至進程] 對話方塊中的 [尋找] 按鈕,然後在 [選取 Docker 容器] 對話框中選取另一個容器。

檢視影像

您可以使用 映像 索引標籤,在 容器 視窗的左側查看本機計算機上的映像。 從外部存放庫提取的映像會分組在樹檢視中。

顯示容器視窗的螢幕快照,其中顯示容器映像。

右窗格有適用於影像的索引標籤:標籤詳細資訊。 [ 詳細數據 ] 索引標籤會顯示 JSON 格式影像的組態詳細數據。

顯示 [容器] 視窗 [圖片> 詳細資料] 標籤的螢幕截圖。

顯示容器視窗的螢幕快照,其中顯示容器映像。

右窗格具有適用於影像的索引標籤、詳細資料和圖層。 [ 詳細數據 ] 索引標籤會顯示 JSON 格式影像的組態詳細數據。

顯示 [容器] 視窗 [圖片> 詳細資料] 標籤的螢幕截圖。

若要移除影像,請以滑鼠右鍵按兩下樹檢視中的影像,然後選擇 [移除],或選取影像,然後選取工具列上的 [ 移除 ] 按鈕。

清理容器和映像檔

您可以選取 [容器] 視窗工具列上的 [剪除] 按鈕,輕鬆地移除您未使用的容器和映像。

顯示修剪按鈕的截圖。

  • 如果您已選取 [ 容器] 索引標籤,系統會要求您確認您想要移除所有未使用的容器。

顯示修剪按鈕的截圖。

  • 如果您已選取 [ 容器] 索引標籤,系統會要求您確認要移除所有已停止的容器。
  • 如果您已選取 [ 影像] 索引標籤,提示會詢問您是否要移除所有懸空的影像。 懸置影像是指那些不再與標記影像相關聯的圖層影像。 偶爾清理冗餘鏡像,以節省磁碟空間。