Ecco come ottenere la migliore esperienza Docker su Windows.
Il sottosistema Windows per Linux 2 è uno strumento fenomenale su Windows 10 e 11 e si integra perfettamente con Docker. In qualità di sviluppatori, è essenziale capire cosa offrono questi software e come ottenere il massimo dalla configurazione di Docker-WSL 2.
Cos'è Docker?
Docker è una piattaforma open source che consente agli sviluppatori di creare, distribuire ed eseguire in modo efficiente le proprie applicazioni all'interno di un contenitore. Tutte le dipendenze sono raggruppate in modo che il tuo progetto possa essere facilmente distribuito in qualsiasi ambiente.
Docker è molto popolare tra molte piattaforme di containerizzazione perché è affidabile, funzionale e altamente scalabile. Funziona sul motore Docker, uno strumento DevOps essenziale che fornisce un ambiente pulito e leggero per il test e la distribuzione. Docker è simile a una macchina virtuale ma virtualizza il sistema operativo anziché l'hardware sottostante.
Per gli sviluppatori di software, Docker semplifica il flusso di lavoro creando singoli contenitori per diversi microservizi che includono le dipendenze, le librerie e le configurazioni necessarie. Ogni contenitore di microservizi è isolato e scalabile individualmente.
Come utilizzare Docker su WSL 2
Docker è compatibile con tutti i principali sistemi operativi, come Windows, macOS e Linux. Se utilizzi Windows 10 o 11, puoi utilizzare Docker tramite Docker Desktop e integrarlo con il sottosistema Windows per Linux 2 per prestazioni migliorate. Puoi scaricare Docker Desktop per Windows dal sito web ufficiale di Docker.
Il sottosistema Windows per Linux (WSL) è una funzionalità preziosa che consente agli utenti Windows di eseguire distribuzioni Linux come Ubuntu e Kali senza configurare una macchina virtuale o dual-boot.
Questo significa anche quello Gli utenti Windows possono utilizzare direttamente gli strumenti della riga di comando di Linux, applicazioni e utilità senza passaggi di installazione aggiuntivi. La versione più recente di WSL, WSL 2, offre maggiore stabilità e un kernel Linux dedicato.
Poiché i container Docker sono robusti, puoi persino configurarli per ospitare il tuo server; I contenitori docker nginx sono comunemente usati come server web. Inoltre, puoi utilizzare Docker in molti altri modi:
- Esegui facilmente le distribuzioni Linux
- Configurare un server Web per scopi di apprendimento o test
- Applicazioni di distribuzione portatili
- Raggruppa l'applicazione in un singolo file immagine
- Pipeline CI/CD semplificata
È necessario acquisire familiarità con le best practice per l'utilizzo di Docker con il sottosistema Windows per Linux 2, proprio come si farebbe con qualsiasi altra piattaforma o strumento. Come sviluppatore, posso dire per esperienza personale che diventerai molto più produttivo ed efficiente una volta integrati i seguenti suggerimenti nel tuo flusso di lavoro.
1. Integra VS Code con WSL 2
Visual Studio Code è un IDE popolare amato per le sue incredibili funzionalità, community ed estensioni. In qualità di sviluppatore, la possibilità di utilizzare Visual Studio Code per lo sviluppo di app su una piattaforma Windows mentre anche eseguire quelle app su un kernel Linux è incredibilmente vantaggioso e quasi incredibile caratteristica.
Quando integri VS Code nel sottosistema Windows per Linux, puoi sfruttare il suo kernel Linux specializzato per migliorare la compatibilità multipiattaforma. Puoi semplificare ulteriormente il tuo flusso di lavoro utilizzando il terminale integrato all'interno di VS Code con WSL 2.
A configurare VS Code con WSL 2 su Windows, è possibile configurare il WSL estensione dal VS Code Marketplace e far funzionare le cose.
2. Utilizza il file system WSL 2
Per eseguire correttamente i contenitori Docker, è fondamentale affidarsi al file system della distribuzione WSL 2 e non dipendere pesantemente dal file system Windows nativo. Durante la mia esperienza di lavoro con i contenitori Docker su WSL 2, ho scoperto che è meglio archiviare i file di progetto all'interno di WSL.
3. Usa script nativi di Linux
Molti progetti containerizzati su cui lavorerai probabilmente verranno forniti con script per l'automazione su Linux. In genere, questi script vengono inizialmente sviluppati per Linux e gli sviluppatori Windows non sono una priorità.
Con WSL 2, tutto il tuo team può usare gli stessi script di automazione Linux e non devi preoccuparti di mantenere gli script di automazione compatibili con Windows per il tuo team.
4. Configura BuildKit per migliorare la sicurezza e le prestazioni
BuildKit è un toolkit open source che migliora il tradizionale processo di compilazione di Docker in termini di prestazioni e sicurezza; è direttamente integrato con Docker, quindi non è necessario installarlo separatamente.
Quando abiliti il BuildKit per impostazione predefinita, ti assicuri che i tuoi contenitori vengano creati con il toolkit BuildKit, offrendoti maggiore sicurezza, concorrenza, flessibilità e memorizzazione nella cache.
Per abilitare BuildKit per impostazione predefinita, è necessario apportare le seguenti modifiche al file di configurazione ~/.profile:
esportare DOCKER_BUILDKIT=1.
5. Impostare i limiti delle risorse
Quando integri il back-end WSL 2 con Docker Desktop, dai a Docker l'accesso a tutte le risorse della tua CPU. In questo modo è possibile migliorare le prestazioni per i contenitori che consumano molte risorse.
Tuttavia, in alcuni casi, un contenitore potrebbe allocare molta memoria in eccesso, causando l'arresto anomalo dei processi critici del sistema operativo. È più probabile che si verifichi questo problema quando si utilizzano contenitori di database o un microservizio di memorizzazione nella cache.
Fortunatamente, puoi configurare i contenitori Docker per limitare la memoria di sistema e l'utilizzo della CPU. Dovresti sempre fare attenzione durante la configurazione della memoria di sistema, anche un piccolo errore può avere conseguenze significative. Puoi fare riferimento al documentazione ufficiale di Docker per una guida più dettagliata sulla limitazione delle risorse di memoria e CPU utilizzate da un contenitore Docker.
6. Recupera memoria cache
Se stai eseguendo un contenitore Docker in WSL 2, la sua memoria dovrebbe essere liberata una volta terminato il contenitore. Sfortunatamente, il kernel del sistema operativo tende a mantenere i dati nella cache; ciò significa che la memoria effettiva recuperata dal WSL 2 non sarà sufficiente.
È possibile ripristinare tutta la memoria utilizzata inutilmente come cache eseguendo il seguente comando tramite root in WSL 2:
eco 1 > /proc/sys/vm/drop_caches
Diventa più intelligente con WSL 2
WSL 2 è la migliore funzionalità per gli sviluppatori basati su Windows, cambiando completamente il modo in cui gli sviluppatori utilizzano Docker. Gli sviluppatori devono comprendere le best practice per l'utilizzo di Docker con WSL per migliorare le prestazioni, la sicurezza e la flessibilità del flusso di lavoro.