Cos’è Docker?

Share post

Tempo di lettura: 3 min.
Continua da QUI

Docker è lo strumento più popolare per la creazione e l’esecuzione di container Linux. Mentre le prime forme di container sono nate decenni fa (con tecnologie come FreeBSD Jails e AIX Workload Partitions), i container hanno avuto il loro exploit nel 2013. In quell’anno Docker li ha portati alle masse con una nuova implementazione, che favorisce lo sviluppo e il cloud.

Docker è nato come progetto open source, ma oggi si riferisce anche a Docker Inc., l’azienda che produce Docker, un toolkit di container commerciali che si basa sul progetto open source (e contribuisce a questi miglioramenti alla comunità open source).

Docker è nato sulla tecnologia tradizionale dei container Linux (LXC), ma consente una virtualizzazione più granulare dei processi del kernel Linux. Inoltre aggiunge funzionalità per rendere i container più facili da costruire, distribuire, gestire e proteggere per gli sviluppatori.

Mentre oggi esistono piattaforme container alternative (ad esempio, Open Container Initiative (OCI), CoreOS, e Canonical (Ubuntu) LXD), Docker è così ampiamente preferito che è virtualmente sinonimo di container e a volte viene scambiato per un concorrente per tecnologie complementari come Kubernetes

Orchestrazione di container con Kubernetes

Dato che i container proliferano oggi, un’organizzazione potrebbe averne centinaia o migliaia – team operativi necessitano di programmare e automatizzare la schedulazione dei container, il collegamento in rete, la scalabilità e la disponibilità. E così, è nato il mercato dell’orchestrazione dei container.

Mentre altre opzioni di orchestrazione dei container – in particolare Docker Swarm e Apache Mesos – hanno acquisito una certa trazione all’inizio, Kubernetes è diventato rapidamente il più adottato (in effetti, ad un certo punto, è stato il progetto in più rapida crescita nella storia del software open source).

Gli sviluppatori hanno scelto (e continuano a scegliere) Kubernetes per la sua ampiezza di funzionalità, il suo vasto e crescente ecosistema di strumenti di supporto open source, e il suo supporto e la sua portabilità attraverso i principali fornitori di cloud (alcuni dei quali ora offrono servizi Kubernetes completamente gestiti).

Cosa fa Kubernetes?

Kubernetes schedula e automatizza questi e altri compiti relativi ai container:

  • Deployment: Distribuisce un determinato numero di container a un determinato host e li mantiene in funzione nello stato desiderato.
  • Rollouts: Un roll-out è un cambiamento di un deployment. Kubernetes consente di avviare, mettere in pausa, riprendere, o eseguire il rollback dei rollout.
  • Service Discovery: Kubernetes può esporre automaticamente un container su internet o su altri container usando un nome DNS o un indirizzo IP.
  • Provisioning dello storage: Impostate Kubernetes per montare un persistente storage locale o cloud storage per i vostri container a seconda delle necessità.
  • Bilanciamento del carico e scalatura: Quando il traffico verso un container aumenta, Kubernetes può utilizzare il bilanciamento del carico e il ridimensionamento per distribuirlo sulla rete per mantenere la stabilità.
  • Self-healing per un’high availability: Quando un container si blocca, Kubernetes può riavviarlo o sostituirlo automaticamente; può anche smontare i container che non soddisfano i vostri requisiti di sanity check.