GNU/Linux >> Linux Esercitazione >  >> Linux

I contenitori Windows possono essere ospitati su Linux?

TL;DR:

D: I container Windows possono essere eseguiti su Linux?

R: No. Non possono.

I container utilizzano le risorse e i driver del sistema operativo sottostante, quindi i container Windows possono essere eseguiti solo su Windows e i container Linux possono essere eseguiti solo su Linux.

D: Ma per quanto riguarda Docker per Windows? O altre soluzioni basate su VM?

R: Docker per Windows ti consente di simulare l'esecuzione di Linux contenitori su Windows , ma sotto il cofano viene creata una VM Linux, quindi ancora i container Linux vengono eseguiti su Linux e i container Windows vengono eseguiti su Windows .

Bonus:leggi questo bellissimo articolo sull'esecuzione di container docker Linux su Windows.

D: Quindi, cosa dovrei fare con un'applicazione .NET Framework 462, se volessi eseguirla in un contenitore?

R: Dipende. Considera i seguenti consigli:

  • Se possibile, passa a .NET Core. Poiché .NET Core offre supporto alla maggior parte delle funzionalità principali di .NET Framework e .NET Framework 4.8 sarà l'ultima versione di .NET Framework

  • Se non riesci a migrare a .NET Core - Come menzionato da @Sebastian - puoi convertire le tue librerie in .NET Standard e avere due versioni dell'applicazione - una su .NET Framework 4.6.2 e una su .NET Core - lo è non sempre ovvio. Visual Studio lo supporta abbastanza bene (con multi-targeting), ma alcune dipendenze possono richiedere un'attenzione particolare.

  • (Meno consigliato) In alcuni casi, è possibile eseguire i contenitori di Windows. I container Windows stanno diventando sempre più maturi, con un migliore supporto in piattaforme come Kubernetes. Ma per poter eseguire il codice .NET Framework, è comunque necessario eseguire l'immagine di base di "Server Core", che occupa circa 1,4 GB. Negli stessi rari casi, puoi migrare il tuo codice a .NET Core, ma eseguirlo comunque su Windows Nano server, con una dimensione dell'immagine di 95 MB.

Lasciando anche i vecchi aggiornamenti per la cronologia

Aggiornamento 2:08.2018

Se utilizzi Docker-per-Windows, ora puoi eseguire contemporaneamente i contenitori Windows e Linux :Esecuzione simultanea di contenitori Docker Windows e Linux

Bonus: Non direttamente correlato alla domanda, ma ora puoi eseguire non solo il container Linux stesso, ma anche un orchestrator come Kubernetes:Kubernetes è ora disponibile nel canale stabile di Docker Desktop

Aggiornato al 2018:

La risposta originale in generale è giusta, MA diversi mesi fa, Docker ha aggiunto la funzionalità sperimentale LCOW (repository ufficiale di GitHub).

Da questo post:

Docker per Windows non esegue già container Linux? Esatto. Docker per Windows può eseguire container Linux o Windows, con supporto per container Linux tramite una VM Hyper-V Moby Linux (a partire da Docker per Windows 17.10 questa VM è basata su LinuxKit).

La configurazione per l'esecuzione di container Linux con LCOW è molto più semplice rispetto all'architettura precedente dove una VM Linux Hyper-V esegue un Dockerdaemon Linux, insieme a tutti i contenitori. Con LCOW, il daemon Docker viene eseguito come un processo Windows (come quando si eseguono i contenitori Docker Windows) e ogni volta che si avvia un contenitore Linux, Docker avvia un hypervisor Hyper-V minimo che esegue una VM con un kernel Linux, runc e i processi del contenitore in esecuzione.

Poiché esiste un solo demone Docker e poiché quel demone ora viene eseguito su Windows, sarà presto possibile eseguire i contenitori Windows e LinuxDocker fianco a fianco, nello stesso spazio dei nomi di rete . Questo sbloccherà molti entusiasmanti scenari di sviluppo e produzione per gli utenti Docker su Windows.

Originale:

Come menzionato nei commenti di @PanagiotisKanavos, i container non sono per la virtualizzazione e usano le risorse della macchina host . Di conseguenza, per ora un contenitore Windows non può essere eseguito "così com'è" su una macchina Linux.

Ma - puoi farlo usando VM - poiché funziona su Windows. Puoi installare una VM Windows sul tuo host Linux, che consentirà di eseguire i container Windows.

Con esso, IMHO lo esegue in questo modo in una produzione l'ambiente non sarà l'idea migliore.

Inoltre, questa risposta fornisce maggiori dettagli.


No, non puoi eseguire i contenitori Windows direttamente su Linux.

Ma puoi eseguire Linux su Windows.

Windows Server 2016 viene fornito con un'immagine di base del sistema operativo Ubuntu (dopo il service pack beta di settembre 2016 ). Questo è il motivo per cui puoi eseguire Linux su Windows e non altrimenti. Dai un'occhiata qui. Finalmente, i container Linux possono essere eseguiti su Windows con LinuxKit di Docker

Puoi cambiare tra i contenitori del sistema operativo Linux e Windows facendo clic con il pulsante destro del mouse su Docker nel menu della barra delle applicazioni.


Linux
  1. 10 MOTIVI PER CAMBIARE WINDOWS 10 IN LINUX

  2. Linux:come disinstallare Grub?

  3. Impossibile accedere a siti Web selezionati su Linux (ma possibile su Windows)

  4. exFAT vs NTFS su Linux

  5. Uno dei nodi del cluster di failover di Windows può essere eseguito su Linux?

Introduzione alla gestione dei container Linux

Passaggio da Windows a Linux

Perché i nerd usano Linux

Come eseguire Windows 95 su Linux

Sicurezza Linux vs Windows

Windows può usare una shell Linux invece di cmd?