Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida dettagliata consente di iniziare a creare ed eseguire contenitori Linux in Windows usando wslc.exe, l'interfaccia della riga di comando dei contenitori incorporata con WSL.
wslc.exe fornisce un'interfaccia della riga di comando familiare per la compilazione, la spedizione e l'esecuzione di app in contenitori.
Panoramica dei contenitori WSL
Un contenitore è uno strumento usato per creare, distribuire ed eseguire applicazioni. I contenitori consentono agli sviluppatori di creare un pacchetto di un'app con tutte le parti necessarie (librerie, framework, dipendenze e così via) e spedirlo come un unico pacchetto. L'uso di un contenitore garantisce che l'app esegua la stessa operazione indipendentemente dalle impostazioni personalizzate o dalle librerie installate in precedenza nel computer che lo esegue che potrebbe differire dal computer usato per scrivere e testare il codice dell'app. Ciò consente agli sviluppatori di concentrarsi sulla scrittura di codice senza preoccuparsi del sistema in cui verrà eseguito il codice.
Prerequisiti
- WSL è stato installato. Eseguire
wsl --updateper assicurarsi di avere la versione più recente. - Installare Visual Studio Code(facoltativo).Install Visual Studio Code(optional). In questo modo sarà disponibile la migliore esperienza, inclusa la possibilità di scrivere codice ed eseguire il debug dei progetti in contenitori connessi alla distribuzione Linux.
- Installare Terminale Windows(facoltativo).Install Terminale Windows(optional). In questo modo sarà disponibile la migliore esperienza, inclusa la possibilità di personalizzare e aprire più terminali nella stessa interfaccia (tra cui Ubuntu, Debian, PowerShell, interfaccia della riga di comando di Azure o qualsiasi altra opzione che si preferisce usare).
Installare e verificare wslc
wslc.exe è incluso in WSL, quindi non esiste un motore separato da installare. Per assicurarsi di avere una versione di WSL che la include:
Installare WSL se non è già stato fatto, quindi eseguire l'aggiornamento alla versione più recente aprendo PowerShell e immettendo:
wsl --updateVerificare che
wslc.exesia disponibile e controllarne la versione immettendo:wslc versionVerifica che tutto funzioni correttamente eseguendo una semplice immagine integrata. L'immagine viene estratta automaticamente se non è già presente in locale:
wslc run --rm hello-worldVerrà visualizzato un messaggio "Hello" che conferma che l'installazione sembra funzionare correttamente.
Suggerimento
Ecco alcuni comandi utili wslc da conoscere:
- Elencare i comandi disponibili nell'interfaccia della
wslcriga di comando immettendo:wslc --help - Elencare le informazioni per un comando specifico con:
wslc <COMMAND> --help - Elencare le immagini nel computer con:
wslc image list - Elenca i contenitori in esecuzione sul tuo computer con:
wslc container listoppure elenca tutti i contenitori (inclusi quelli fermati) con:wslc container list --all - Visualizzare le statistiche di utilizzo delle risorse per i contenitori in esecuzione, con:
wslc stats
Avvia i tuoi primi container
Con wslc.exe è possibile scaricare le immagini, avviare i container in primo piano o in background, pubblicare le porte e interagire con i container in esecuzione. Provare alcuni di questi comandi da PowerShell:
# Run a command in a throwaway container
wslc run --rm -it ubuntu:latest bash -c "echo Hello world from WSL container!"
# Run a web server in the background and publish port 8080 to the container's port 80
wslc run -d --rm -p 8080:80 --name web nginx
# Request content from the running web server
curl localhost:8080
# List the running container
wslc container list
# Run an additional command inside the running container
wslc exec web cat /etc/os-release
# Stop the container
wslc container stop web
Poiché il nginx contenitore è stato avviato con --rm, viene rimosso automaticamente dopo l'arresto.
Compilare ed eseguire un'immagine del contenitore personalizzata
Per iniziare a sviluppare app con wslc.exe, è consigliabile usare VS Code, insieme all'estensione WSL , in modo da poter modificare il progetto nel file system Linux ed eseguire wslc comandi dal terminale integrato.
Creiamo un'immagine container per un progetto di app esistente.
Per questo esempio si userà il codice sorgente dell'esercitazione Hello World per Django nella documentazione di configurazione dell'ambiente di sviluppo Python. È possibile ignorare questo passaggio se si preferisce usare il proprio codice sorgente del progetto. Per scaricare l'app Web HelloWorld-Django da GitHub, aprire un terminale WSL (ad esempio Ubuntu) e immettere:
git clone https://github.com/<username>/helloworld-django.gitAnnotazioni
Archiviare sempre il codice nello stesso file system in cui si usano gli strumenti. Ciò comporterà prestazioni di accesso ai file più veloci. In questo esempio si usa una distribuzione Linux (Ubuntu) e si vogliono archiviare i file di progetto nel file system
\\wsl$WSL . L'archiviazione dei file di progetto nel file system Windows rallenta notevolmente quando si usano gli strumenti Linux in WSL per accedere a tali file.Dal terminale WSL passare alla cartella del codice sorgente per questo progetto:
cd helloworld-djangoAprire il progetto in VS Code in esecuzione nel server di estensione WSL locale immettendo:
code .Verificare di essere connessi alla distribuzione di WSL Linux controllando l'indicatore remoto verde nell'angolo inferiore sinistro dell'istanza di VS Code.
Aggiungere un oggetto
Containerfilealla radice del progetto che descrive come compilare l'immagine. Per l'esempio Django, un valore minimoContainerfilepotrebbe essere simile al seguente:FROM python:3 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]Dalla cartella del progetto (la directory contenente
Containerfile), compilare l'immagine conwslc build, contrassegnandola con un nome a cui è possibile fare riferimento in un secondo momento:wslc build -t helloworld-django .Verificare che l'immagine sia stata creata elencando le immagini:
wslc image listEseguire l'immagine appena compilata come contenitore, pubblicando la porta dell'app in modo da poterla raggiungere da Windows:
wslc run -d --rm -p 8000:8000 --name django helloworld-djangoPer verificare che il contenitore sia in esecuzione, elencare i contenitori in esecuzione e controllarne i log:
wslc container list wslc container logs djangoApri un browser su Windows e vai a
http://localhost:8000/per vedere l'app in esecuzione all'interno del contenitore. È anche possibile verificare che l'app sia in esecuzione in Linux eseguendo un comando all'interno del contenitore:wslc exec django unameIl
unamerisultato di "Linux" conferma che il contenitore è in esecuzione nel kernel WSL 2 Linux.Quando hai finito, ferma il contenitore:
wslc container stop django
È stato creato ed eseguito correttamente un contenitore Linux in Windows usando wslc.exe, basato su WSL 2, che è possibile compilare, eseguire, distribuire o eseguire il debug insieme a VS Code.
Risoluzione dei problemi
Esaminare un contenitore o un'immagine
Quando un contenitore si comporta in modo imprevisto, i inspect comandi e logs forniscono informazioni dettagliate per diagnosticare il problema:
wslc container inspect <container-id>
wslc container logs <container-id>
wslc image inspect <image>
Recuperare spazio su disco
Le immagini e i contenitori arrestati consumano spazio su disco. Per pulire le risorse che non si usano più:
# Remove all stopped containers
wslc container prune
# Remove unused images
wslc image prune
Per altre informazioni sulla risoluzione dei problemi generali in WSL, vedere la documentazione sulla risoluzione dei problemi .
Risorse aggiuntive
Windows Subsystem for Linux