WSL 2, la seconda iterazione del sottosistema Windows per Linux, consente di eseguire un ambiente Linux in modo nativo su Windows, senza il sovraccarico di una macchina virtuale (VM). Si integra perfettamente anche con Windows e ti dà accesso alla maggior parte degli strumenti, delle utilità e delle applicazioni della riga di comando a cui sei abituato su Linux.
Questa guida mostra come consentire agli ospiti di WSL 2 di eseguire podman
, skopeo
o buildah
comandi da Windows utilizzando la distribuzione Linux di tua scelta (disponibile da Microsoft Store). Provenendo da un sistema operativo host Fedora Linux, ero curioso di sapere come abilitare e utilizzare gli strumenti con cui ho più familiarità da Windows.
Prerequisito:WSL 2
Per installare WSL 2, vai alla pagina di installazione di WSL.
Usa Powershell per assicurarti che WSL 2 sia abilitato per impostazione predefinita:
PS> wsl –set-default-version 2
Per informazioni sulle principali differenze tra WSL 1 e WSL 2, vedere la documentazione WSL.
Il sottosistema Windows per Linux ha fatto molta strada. Microsoft ha lavorato duramente per rendere virtualmente invisibile la separazione tra il sistema operativo host Windows e il sistema operativo guest Linux. I driver speciali nei kernel di ogni sistema semplificano l'esecuzione di comandi tra varie shell e finestre di comando e consentono l'accesso reciproco al filesystem.
Puoi confermare che stai utilizzando correttamente il kernel WSL 2 con il seguente comando e output in uno qualsiasi dei guest:
$ uname -a
Linux BLD 5.10.16.3-microsoft.standard-WSL2 #1 SMP Fri Apr 2 22:23:49
UTC 2021 x86_64 x86_64 GNU/Linux
Gli ospiti di WSL 1 segnalano una versione del kernel come 4.14 o simile.
Piccoli tocchi nei tuoi ospiti possono rendere l'integrazione ancora più semplice, incluso il collegamento simbolico di vari file di directory home (.aws, .sh, .config e così via). C'è un suggerimento su come questo può essere ottenuto direttamente dalla directory $HOME:
Installa una distribuzione Linux
Per installare una distribuzione Linux, trova la tua preferita in Microsoft Store.
Per questo articolo, sto usando Fedora, ma sono disponibili altre distribuzioni da provare. Podman funziona bene su tutte le distribuzioni, quindi puoi utilizzare qualsiasi distribuzione con cui hai più familiarità. Potrebbero essere necessarie alcune modifiche minori alla configurazione, ma queste sono generalmente documentate dalla documentazione di distribuzione e podman. Ho scelto Fedora perché era la distribuzione che non richiedeva alcuna configurazione aggiuntiva per far funzionare l'ultimo podman.
Al primo avvio vengono installate la VM e le relative tecnologie. Ti verrà chiesto di selezionare una password per il primo utente (che ottiene l'accesso sudo).
Installa Podman
Una volta che la tua distribuzione Linux è stata installata e configurata con un utente, puoi installare podman come al solito:
$ sudo dnf install podman
Dopo pochi istanti, podman è installato e pronto per l'uso. Puoi controllare che tutto funzioni come previsto:
$ podman info
host:
arch: amd64
buildahVersion: 1.22.3
cgroupControllers: []
cgroupManager: cgroupfs
cgroupVersion: v1
[...]
version:
APIVersion: 3.3.1
OsArch: linux/amd64
Version: 3.3.1
Da lì, puoi creare immagini e utilizzare podman come faresti di solito.
Grazie all'integrazione WSL, podman è persino accessibile e utilizzabile da PowerShell o dal prompt dei comandi:
Installazione e utilizzo di buildah
e skopeo
comandi è esattamente lo stesso processo.
Test della casella occupata
Come semplice test per vedere podman
al lavoro, puoi estrarre ed eseguire un contenitore Busybox. BusyBox è un progetto open source (GPL) che fornisce semplici implementazioni di quasi 400 comandi comuni, inclusi ls, mv, ln, mkdir, more, ps, gzip, bzip2, tar
e grep
, il che lo rende un ambiente opportunamente minimale per contenitori e per semplici test come questo.
Innanzitutto, cerca nel repository di immagini predefinito un contenitore Busybox. Puoi farlo nel tuo terminale Linux o in Powershell.
$ podman search busybox
INDEX NAME DESCRIPTION
docker.io docker.io/library/busybox Busybox base image
docker.io docker.io/radial/busyboxplus Full-chain...
docker.io docker.io/yauritux/busybox-curl Busybox with CURL
Esegui quello che vuoi provare:
$ podman run -it docker.io/library/busybox
/ #
Puoi utilizzare il contenitore, eseguire alcuni comandi per verificare che tutto funzioni come previsto, quindi lasciarlo con exit comando.
Contenitori Linux
- Cosa sono i container Linux?
- Un'introduzione alla terminologia dei contenitori
- Download:Primer sui contenitori
- Operatori Kubernetes:automatizzare la piattaforma di orchestrazione dei container
- eBook:modelli Kubernetes per la progettazione di app cloud native
- Cos'è Kubernetes?
Inizia
Devo ammettere che sono rimasto sorpreso dalla rapidità con cui le attuali distribuzioni Linux là fuori, podman e il sottosistema Windows hanno funzionato insieme qui. È ovvio che un sacco di ottimo lavoro è stato dedicato agli strumenti del contenitore di Windows e all'integrazione con Linux. Spero che questa guida aiuti gli altri a raggiungere facilmente lo stesso punto di partenza e iniziare a essere produttivi.
Esistono molti buoni candidati per un follow-up approfondito, incluso il lavoro con i volumi, l'esposizione di servizi di rete tra il guest e l'host e l'esposizione delle capacità Linux in quei container. Con così tanti strumenti disponibili, sono molto fiducioso che la community farà presto a scavare al loro interno!