Condividi tramite


Usare la finestra Contenitori

È possibile visualizzare le operazioni eseguite all'interno dei contenitori che ospitano l'app usando la finestra Contenitori . Se si usa il prompt dei comandi per eseguire comandi Docker per visualizzare e diagnosticare le attività dei contenitori, questa finestra offre un modo più pratico per monitorare i contenitori senza uscire dall'IDE di Visual Studio.

È anche possibile visualizzare informazioni sulle immagini del contenitore usando la finestra Contenitori .

Prerequisiti

Visualizzare informazioni sui contenitori

La finestra Contenitori viene visualizzata automaticamente all'avvio di un progetto .NET in contenitori . Per visualizzare i contenitori in Visual Studio in qualsiasi momento, usare CTRL+Q per attivare la casella di ricerca di Visual Studio e digitare Containers e scegliere il primo elemento. È anche possibile aprire la finestra Contenitori dal menu principale. Usare il percorso del menu Visualizza>altri contenitori di Windows.>

Screenshot della finestra Contenitori in Visual Studio con un contenitore selezionato nel riquadro sinistro e la scheda Ambiente selezionata nel riquadro destro.

Screenshot della finestra Contenitori in Visual Studio con un contenitore selezionato nel riquadro sinistro e la scheda Ambiente selezionata nel riquadro destro.

Sul lato sinistro viene visualizzato l'elenco dei contenitori nel computer locale. I contenitori associati alla soluzione vengono visualizzati in Contenitori di soluzioni. A destra viene visualizzato un riquadro con schede per Ambiente, Etichette, Porte, Volumi, Log e File.

Suggerimento

È possibile personalizzare facilmente la posizione in cui è ancorata la finestra degli strumenti Contenitori in Visual Studio. Vedere Personalizzazione dei layout delle finestre in Visual Studio. Per impostazione predefinita, la finestra Contenitori è ancorata con la finestra Espressione di controllo quando il debugger è in esecuzione.

Se si usa Docker Compose e Visual Studio 2022 versione 17.7 o successiva, viene visualizzato un albero di nodi per la soluzione e il relativo progetto Docker Compose, con un nodo padre per la soluzione e i nodi figlio per ogni progetto.

Screenshot che mostra i nodi Docker Compose nella finestra Contenitori.

Visualizzare le variabili di ambiente

La scheda Ambiente mostra le variabili di ambiente nel contenitore. Per il contenitore dell'app, è possibile impostare queste variabili in molti modi, ad esempio nel Dockerfile, in un file con estensione env o usando l'opzione -e quando si avvia un contenitore usando un comando Docker.

Screenshot della finestra Contenitori in Visual Studio che mostra le variabili di ambiente per un contenitore.

Screenshot della finestra Contenitori in Visual Studio che mostra le variabili di ambiente per un contenitore.

Nota

Le modifiche apportate alle variabili di ambiente non vengono riflesse in tempo reale. Inoltre, le variabili di ambiente in questa scheda sono le variabili di ambiente di sistema nel contenitore e non riflettono le variabili di ambiente utente locali per l'app.

Visualizzare le etichette

La scheda Etichette mostra le etichette per il contenitore. Le etichette sono un modo per impostare metadati personalizzati sugli oggetti Docker. Alcune etichette vengono impostate automaticamente da Visual Studio.

Screenshot della finestra Contenitori in Visual Studio che mostra la scheda Etichette.

Screenshot della finestra Contenitori in Visual Studio che mostra la scheda Etichette.

Visualizzare i mapping delle porte

Nella scheda Porte è possibile controllare i mapping delle porte effettivi per il contenitore.

Screenshot della scheda Porte nella finestra Contenitori.

Screenshot della scheda Porte nella finestra Contenitori.

Le porte note sono collegate, quindi se è disponibile contenuto su una porta, è possibile fare clic sul collegamento per aprire il browser.

Visualizzare i volumi

La scheda Volumi mostra i volumi (nodi del file system montati) nel contenitore.

Screenshot della scheda Volumi nella finestra Contenitori.

Screenshot della scheda Volumi nella finestra Contenitori.

Visualizzare i log

La scheda Log mostra i risultati del docker logs comando. Per impostazione predefinita, la scheda mostra i flussi stdout e stderr in un contenitore, ma è possibile configurare l'output. Per informazioni dettagliate, vedere Registrazione di Docker. Per impostazione predefinita, la scheda Log trasmette i log, ma è possibile sospendere questa operazione scegliendo il pulsante Stream nella scheda. Se si seleziona di nuovo Stream , il flusso riprende da dove è stato interrotto.

Screenshot della scheda Log nella finestra Contenitori.

Screenshot della scheda Log nella finestra Contenitori.

Per cancellare i log, usare il pulsante Cancella nella scheda Log . Per ottenere tutti i log, usare il pulsante Aggiorna .

Nota

Visual Studio reindirizza automaticamente stdout e stderr alla finestra Output quando si esegue senza eseguire il debug con contenitori Windows, quindi i contenitori di Windows avviati da Visual Studio con CTRL+F5 non visualizzeranno i log in questa scheda. Usare invece la finestra Output.

Se si usa Docker Compose con Visual Studio 2022 versione 17.7 o successiva, è possibile visualizzare i log di ogni contenitore separatamente o interleaved in un singolo flusso di output. Se si seleziona il nodo padre per la soluzione, vengono visualizzati i log interleaved da tutti i progetti Compose. La prima colonna di ogni riga mostra il contenitore che ha prodotto tale riga di output. Se si vogliono visualizzare i log solo per un contenitore, selezionare il nodo del progetto specifico.

Screenshot che mostra i log interleaved nella scheda Log della finestra Contenitori.

Visualizzare il file system

Nella scheda File è possibile visualizzare il file system del contenitore, inclusa la cartella dell'app che contiene il progetto.

Screenshot della scheda File nella finestra Contenitori.

Screenshot della scheda File nella finestra Contenitori.

Per aprire i file in Visual Studio, passare al file e fare doppio clic su di esso oppure fare clic con il pulsante destro del mouse e scegliere Apri. Visual Studio apre i file in modalità di sola lettura.

Screenshot del file aperto per la visualizzazione in Visual Studio.

Screenshot del file aperto per la visualizzazione in Visual Studio.

Usando la scheda File , è possibile visualizzare i log applicazioni, ad esempio i log IIS, i file di configurazione e altri file di contenuto nel file system del contenitore.

In Visual Studio 2022 versione 17.7 o successiva, quando la destinazione è .NET 8 o successiva, il Dockerfile potrebbe contenere il USER app comando , che specifica di eseguire l'app con autorizzazioni utente normali. La scheda File usa anche queste autorizzazioni e pertanto potrebbe non essere possibile visualizzare alcune cartelle, se tali cartelle sono impostate per richiedere autorizzazioni elevate per la visualizzazione.

Avviare, arrestare e rimuovere contenitori

Per impostazione predefinita, la finestra Contenitori mostra tutti i contenitori nel computer gestito da Docker. È possibile usare i pulsanti della barra degli strumenti per avviare, arrestare o rimuovere (eliminare) un contenitore che non si vuole più. Questo elenco viene aggiornato in modo dinamico quando i contenitori vengono creati o rimossi.

Per selezionare più contenitori, ad esempio, per rimuovere più contenitori alla volta, usare CTRL+Clic. Se si tenta di avviare più di 10 contenitori, viene richiesto di confermarlo. Se necessario, è possibile disabilitare la richiesta di conferma.

Aprire una finestra del terminale in un contenitore in esecuzione

È possibile aprire una finestra del terminale (prompt dei comandi o shell interattiva) nel contenitore usando il pulsante Apri finestra del terminale nella finestra Contenitore .

Screenshot della finestra Apri terminale nella finestra Contenitori.

Screenshot della finestra Apri terminale nella finestra Contenitori.

Per i contenitori di Windows, viene aperto il prompt dei comandi di Windows. Per i contenitori Linux, viene aperta una finestra usando la shell Bash.

Screenshot della finestra Bash.

Screenshot della finestra Bash.

Se si usa .NET 8 come destinazione, il Dockerfile può specificare il comando, il che significa che l'app USER app viene eseguita con autorizzazioni utente normali, anziché autorizzazioni elevate. Il Dockerfile generato da Visual Studio include questo valore in Visual Studio 2022 versione 17.7 e successive, se si usa .NET 8 o versione successiva. Il terminale viene aperto come utente specificato nel Dockerfile (per impostazione predefinita per i progetti .NET 8, ovvero app) o se non viene specificato alcun utente, viene eseguito come root utente.

In genere, la finestra del terminale si apre all'esterno di Visual Studio come finestra separata. Se si vuole un ambiente da riga di comando integrato nell'IDE di Visual Studio come finestra degli strumenti ancorabile, è possibile installare Whack Whack Terminal.

Collegare il debugger a un processo

È possibile collegare il debugger a un processo in esecuzione nel contenitore usando il pulsante Connetti a processo sulla barra degli strumenti della finestra Contenitori. Quando si usa questo pulsante, viene visualizzata la finestra di dialogo Connetti a processo e vengono visualizzati i processi disponibili in esecuzione nel contenitore.

Screenshot della finestra di dialogo Connetti a processo.

Screenshot della finestra di dialogo Connetti a processo.

È possibile connettersi ai processi gestiti nel contenitore. Per cercare un processo in un altro contenitore, usare il pulsante Trova e selezionare un altro contenitore nella finestra di dialogo Seleziona contenitore Docker.

Visualizzazione delle immagini

È anche possibile visualizzare le immagini nel computer locale usando la scheda Immagini nella finestra Contenitori . Le immagini estratte da repository esterni vengono raggruppate in una visualizzazione albero.

Screenshot che mostra la finestra Contenitori che mostra le immagini del contenitore.

Screenshot che mostra la finestra Contenitori che mostra le immagini del contenitore.

La finestra include solo le schede applicabili alle immagini: Etichette e Dettagli. La scheda Dettagli mostra i dettagli di configurazione per l'immagine in formato JSON.

Screenshot che mostra la scheda Dettagli immagini > della finestra Contenitori.

Screenshot che mostra la scheda Dettagli immagini > della finestra Contenitori.

Per rimuovere un'immagine, fare clic con il pulsante destro del mouse sull'immagine nella visualizzazione albero e scegliere Rimuovi oppure selezionare l'immagine e usare il pulsante Rimuovi sulla barra degli strumenti.

Eliminare contenitori e immagini

È possibile rimuovere facilmente contenitori e immagini che non si usano più usando il pulsante Elimina sulla barra degli strumenti della finestra Contenitori .

Screenshot che mostra il pulsante di eliminazione.

Screenshot che mostra il pulsante di eliminazione.

Verrà chiesto di confermare che si vuole rimuovere tutti i contenitori inutilizzati.

Quando la scheda Immagini è selezionata, il pulsante Prune chiederà se si desidera rimuovere tutte le immagini incerte. Le immagini dangling sono immagini di livelli che non sono più associati a un'immagine con tag. La rimozione di tali risorse consente occasionalmente di risparmiare spazio su disco.

Opzioni di configurazione

È possibile configurare le finestre di dialogo di conferma per varie attività, ad esempio la rimozione di contenitori e immagini o l'avvio di più di 10 contenitori alla volta. È possibile disabilitare ogni richiesta usando la casella di controllo nella finestra di dialogo. È anche possibile abilitare o disabilitare queste opzioni usando le impostazioni disponibili nella finestra degli strumenti>>Strumenti>Strumenti contenitori contenitori. Vedere Configurare gli strumenti contenitore.