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.