GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Docker e contenitori Linux su Windows, con o senza macchine virtuali Hyper-V

I contenitori sono adorabili, nel caso non l'avessi sentito. Sono un modo semplice e pulito per ottenere una distribuzione affidabile e garantita, indipendentemente dal sistema host.

Se voglio eseguire la mia applicazione ASP.NET Core, posso semplicemente digitare "docker run -p 5000:80 shanselman/demos" nella riga di comando e si avvierà! Non ho alcuna preoccupazione che non funzioni. Funzionerà e funzionerà bene.

Alcuni contrari ai container dicono che, certo, potremmo fare la stessa cosa con le macchine virtuali, ma anche oggi un VHD (disco rigido virtuale) è piuttosto indisciplinato e include un sacco di sovraccarico che un container non ha. I container stanno nascendo e dovresti esaminarli attentamente per le tue distribuzioni.

Storicamente su Windows, tuttavia, i contenitori Linux vengono eseguiti all'interno di una macchina virtuale Hyper-V. Questo può essere un bene o un male, a seconda di quali sono i tuoi obiettivi. L'esecuzione di contenitori all'interno di una macchina virtuale offre un isolamento significativo con un sovraccarico. Questo è bello per i server ma meno per il mio laptop. Docker per Windows nasconde la VM per la maggior parte, ma è lì. Il tuo contenitore viene eseguito all'interno di una macchina virtuale Linux che viene eseguita all'interno di Hyper-V su Windows vero e proprio.

Con l'ultima versione di Windows 10 (o 10 Server) e la versione beta di Docker per Windows, c'è il supporto nativo del contenitore Linux su Windows. Ciò significa che non sono coinvolti macchine virtuali o Hyper-V (a meno che tu non lo desideri), quindi i contenitori Linux vengono eseguiti su Windows stesso utilizzando il supporto dei contenitori integrato di Windows 10.

Per ora devi cambiare "modalità" tra Hyper V e Container nativi e non puoi (ancora) eseguire Linux e Windows Container fianco a fianco. La parola sulla strada è che questa è solo una cosa di un momento e che Docker a un certo punto supporterà l'esecuzione parallela di contenitori Linux e Windows. È piuttosto carino perché apre tutti i tipi di fantastici scenari ibridi. Potrei eseguire un contenitore Windows Server con un'app .NET Framework ASP.NET che comunica con un contenitore Linux che esegue Redis o Postgres. Potrei quindi inserirli tutti in Kubernetes in Azure, ad esempio.

Dopo aver attivato Linux Containers su Windows all'interno di Docker, tutto funziona e ha una parte mobile in meno.

Posso eseguire facilmente e rapidamente busybox o Ubuntu reale (sebbene Windows 10 supporti già Ubuntu in modo nativo con WSL):

Ancora più utile è eseguire la riga di comando di Azure senza installazione! Basta "docker run -it microsoft/azure-cli" ed è in esecuzione in un contenitore Linux.

Posso anche eseguire nyancat! (Grazie Tommaso!)

docker esegui -it supertest2014/nyan

Speculare:non vedo l'ora che arrivi il giorno in cui potrò eseguire "minikube start --vm-driver="windows" (o qualcosa del genere) e configurare facilmente un sistema di sviluppo Kubernetes in locale utilizzando il supporto del contenitore Linux nativo di Windows anziché utilizzare macchine virtuali Hyper-V , se lo desidero.

Sponsor: Perché perdere la versione che controlla il tuo database? È più facile di quanto pensi perché SQL Source Control connette il tuo database agli stessi strumenti di controllo della versione che usi per le applicazioni. Scopri come.

Docker
  1. Esegui container su Linux senza sudo in Podman

  2. Che cos'è Docker (e contenitori Linux?)

  3. Portainer:una GUI facile da usare per eseguire e ottenere contenitori Docker

  4. Introduzione ai contenitori Docker

  5. Come installare Docker ed eseguire Docker Container in Ubuntu

Come eseguire il software Windows su Linux con Bottles

Come eseguire i contenitori Docker

Procedura:Introduzione a Windows Containers e Docker

Docker Desktop per WSL 2 integra Windows 10 e Linux ancora più da vicino

Esplorazione di ASP.NET Core con Docker in entrambi i contenitori Linux e Windows

Come eseguire app della GUI Linux su Windows 10 con WSL e WSLg