
I container sono Linux.
Non è una frase d’effetto o frutto della dedizione che la mia vita professionale e questo portale hanno nei confronti di Linux e del mondo open-source, ma è la pura verità. Il concetto di container per come lo conosciamo e per come ha letteralmente rivoluzionato il modo in cui vengono gestiti i workload sul cloud è basato su tre elementi principali: i namespace ed i CGroups del Kernel Linux e le immagini dei container, nient’altro che distribuzioni Linux gestite in archivi a livelli.
Tre elementi, un unico aspetto in comune: Linux, ed il suo Kernel.
Poi c’è Microsoft.
Da ormai un decennio sui sistemi Windows è possibile utilizzare WSL, ossia Windows Subsystem for Linux, la cui prima versione (WSL 1) è stata rilasciata nel 2016, seguita nel 2019 dalla più completa e utilizzabile WSL 2, che includeva addirittura un Kernel Linux reale.
Non una Virtual Machine, ma un vero e proprio sottosistema integrato che è cresciuto nel tempo tanto da veder supportato nientemeno che systemd, il cui supporto ufficiale è stato introdotto da Microsoft e Canonical nel 2022.
Chi mastica di queste cose avrà già capito: con un Kernel Linux e Systemd è automatico pensare, nel caso si vogliano erogare dei container, di installare Docker ed utilizzare i container esattamente come farebbe qualsiasi distribuzione Linux.
Non che chi scrive ci abbia mai provato, sia chiaro, ma è la realtà dei fatti, documentazione alla mano: si abilita systemd in WSL2 (creando/modificando /etc/wsl.conf con [boot]\nsystemd=true), si installa Docker Engine usando i comandi standard di Ubuntu ed infine si avvia il servizio Docker con sudo systemctl enable --now docker.
Da quel momento, tutti i comandi docker (come docker run, docker build) sono disponibili direttamente dal terminale di Ubuntu in WSL2.
Esattamente come si farebbe su un computer Linux nativo. Solo che poi, si diceva, arriva Microsoft, che ha deciso di introdurre i WSL container.
L’idea di base si fonda sull’aggiunta del comando nativo a WSL, wslc.exe, che permette di gestire i container Linux esattamente come si fa con Docker, ma senza dover installare nulla di aggiuntivo come qualunque utente Linux farebbe.
La funzionalità è attualmente in anteprima pubblica e per installarla è sufficiente aggiornare WSL alla versione pre-release più recente.
wsl --update --pre-release
Dopo l’aggiornamento e un riavvio di WSL sarà quindi disponibile la riga di comando wslc.
Il comando per eseguire un container è molto simile a quello di Docker. Per esempio, per avviare un container Debian interattivo:
wslc run -it debian:latest
Se l’immagine non è presente sul computer, wslc la scaricherà automaticamente dal registro (esatto, Docker Hub) e poi avvierà il container dando accesso a una shell interattiva al suo interno.
Quindi sì, nulla di diverso rispetto a quanto si farebbe per l’utilizzo normale dei container in Linux, ma hey, qui siamo in WSL!
Lasciamo ai vostri commenti il giudizio su questa nuova trovata, che entra di diritto nella rubrica “Cose di cui non si sentiva il bisogno“, che abbiamo aperto ad inizio giugno parlando delle Coreutils per Windows.
Qualcosa ci spinge a pensare che non sia finita qui, ed è probabile che presto ci troveremo a porci nuovamente l’inquietante domanda: “ma perché!?”.
Alla prossima!
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.





















Lascia un commento