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

Che cos'è Docker (e contenitori Linux?)

Tempo fa, intorno al rilascio del kernel Linux versione 3, il concetto di namespace e containerizzazione è stato introdotto attraverso un modulo chiamato lxc (Linux containers).

L'idea alla base di un contenitore è in qualche modo simile all'idea di una macchina virtuale. Ad esempio, con la virtualizzazione, hai un server (l'"host") che esegue qualcosa come KVM o VMware. Le macchine che funzionano sotto di essa sono chiamate guest. Sono computer completamente autonomi, in esecuzione sopra l'host.

I container portano questo concetto al livello successivo. I container aiutano soprattutto gli sviluppatori (ma anche gli amministratori di sistema) a distribuire rapidamente applicazioni o servizi. I container sono macchine Linux molto piccole che funzionano come un normale processo Linux (in userspace ). Un server Linux medio ha una dimensione di gigabyte e ha un kernel pieno zeppo di utili driver per tutti i tipi di hardware e così via. Un contenitore, al contrario, ha una dimensione di poche centinaia di megabyte. Una macchina virtuale si avvierà in pochi minuti, un container si avvierà, inclusa l'applicazione prevista, in pochi secondi o meno. Funziona esattamente come ci si aspetterebbe da qualsiasi normale applicazione Linux, come processo che puoi vedere usando il comando ps.

Il diagramma seguente della gente di CoreOS mostra bene la relazione tra i container e il sistema operativo. Nella parte superiore, puoi vedere un normale server Linux, che esegue tutti i soliti servizi che potresti immaginare, come Java, il server web nginx ecc., probabilmente ci saranno anche alcune altre applicazioni in esecuzione.

Nella figura 2, puoi vedere un esempio di sistema operativo orientato alla containerizzazione. Ha solo applicazioni limitate e minime, come il server ssh in esecuzione. Tutte le altre applicazioni sono ora in esecuzione all'interno di contenitori completamente isolati.

Esseri effimeri

I container sono idealmente realizzati per essere di natura univoca:immagina di avere un'applicazione che utilizza JBoss e PostgreSQL. Probabilmente avresti un contenitore per entrambi i componenti JBoss e PostgreSQL. I due contenitori sono isolati l'uno dall'altro, ma è possibile che siano collegati, in modo che possano dialogare tra loro. I contenitori sono anche progettati per essere effimeri:una volta che il suo scopo è stato servito, lo fai esplodere, puoi sempre farne girare un altro in pochi secondi. Ciò significa anche che i dati archiviati all'interno di un contenitore  non persistente. Se si desidera che i dati, come database o siti Web, rimangano, è possibile inserirli in un volume di archiviazione esportato sul server host. Nella procedura consigliata per la sicurezza, aggiorneresti l'immagine di base con eventuali nuove patch o procedure di rafforzamento della sicurezza, quindi proseguirai con l'applicazione. Dopodiché, distruggeresti il ​​tuo container della scorsa settimana e utilizzeresti il ​​nuovo container più sicuro la prossima settimana.

I container si adattano perfettamente all'intero SaaS (modello software come servizio) e consentono inoltre agli sviluppatori e al personale operativo di collaborare in modo più semplice (leggi DevOps). Ma non andiamo avanti con noi stessi qui, gli strumenti non risolveranno i problemi culturali, questo è un "altro argomento per un altro sito Web!

Porta mobile

Docker è in circolazione da un po' di tempo. Docker ha portato su Linux ciò che lxc non poteva:facilità d'uso. Una volta che gli sviluppatori hanno scoperto quanto fosse utile far girare un contenitore Docker sul proprio laptop e avere la certezza che avrebbe funzionato esattamente allo stesso modo su un server da qualche altra parte, con la massima facilità, è diventato rapidamente un gioco da ragazzi.

Docker ha i suoi critici, alcuni (come il team coreOS) credono che Docker non sia abbastanza sicuro e stanno diventando troppo commercializzati (ecco perché hanno creato rkt come concorrente di Docker), ma lo amano o lo odiano, Docker ha un seguito enorme, e non solo nelle aziende che ti aspetteresti, come Amazon e Google.

Più letture

Puoi leggere ulteriori informazioni sulla containerizzazione sui seguenti siti Web:

LinuxContainers.org

Docker:cos'è Docker?

Amazon AWS:cosa sono Contenitori?

Rkt (pronunciato Rocket), da CoreOS


Docker
  1. Demistificare gli spazi dei nomi e i contenitori in Linux

  2. Che cos'è Podman e come installare Podman in Linux

  3. Qual è la differenza tra un container Linux e un'immagine?

  4. Come creare, elencare ed eliminare contenitori Docker su Linux

  5. Che cos'è Podman e in che cosa differisce da Docker?

Come installare WordPress su Docker (Windows, macOS e Linux)

Che cos'è Docker Compose e come lo usi?

Come installare Docker e Docker Compose su Linux

Come installare Docker su Rocky Linux e AlmaLinux

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

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