Introduzione a docker

  • Introduzione a docker

Introduzione a docker

  • Docker è un motore di contenitori per applicazioni che può impacchettare un’applicazione e le sue dipendenze in un contenitore portatile, quindi pubblicarlo su qualsiasi macchina Linux o Windows popolare, realizzando anche la virtualizzazione.
  • Perché esiste Docker? Perché sviluppatori e operatori incontrano spesso un problema: un’applicazione funziona perfettamente nell’ambiente di sviluppo, ma presenta numerosi bug nell’ambiente di produzione reale.
    • L’esecuzione di un programma passa dall’architettura hardware al sistema operativo, quindi all’applicazione. Questi sono livelli diversi, ma gli sviluppatori spesso si concentrano solo sullo sviluppo dell’applicazione, trascurando i problemi degli altri livelli.
    • Docker nasce proprio per risolvere questo problema, impacchettando l’applicazione e le sue dipendenze in un contenitore, eliminando così i problemi legati all’ambiente.
  • Sincronizza gli ambienti di sviluppo e produzione, consentendo agli sviluppatori di sviluppare, testare e distribuire applicazioni localmente senza preoccuparsi dell’ambiente. Migliora significativamente l’efficienza di sviluppo e operazioni, a costo di un leggero spreco di risorse.

Consiglio vivamente a tutti gli sviluppatori di imparare a utilizzare i contenitori per lo sviluppo e la distribuzione. Con un costo relativamente basso, Docker fornisce un ambiente di esecuzione stabile per le tue applicazioni, aumentando così l’efficienza di sviluppo e operazioni.

Descrivo con un linguaggio semplice un flusso di lavoro tipico con Docker:

  1. Creare da zero un ambiente di sviluppo, composto da sistema operativo, applicazione, pacchetti di dipendenze, file di configurazione, ecc.
    • L’ambiente può essere eseguito ovunque e creato ovunque.
    • I risultati della compilazione del codice sorgente nell’ambiente sono stabili e prevedibili, con comportamenti completamente coerenti.
    • L’esecuzione del programma nell’ambiente non produce ambiguità.
    • È meglio creare l’ambiente in modo dichiarativo (docker-compose), riducendo ulteriormente le differenze nascoste tra ambienti; tutto l’ambiente è già mostrato nella dichiarazione.
  2. Creare un commit, creare un’immagine; questo equivale a uno snapshot che conserva l’ambiente corrente per un utilizzo futuro.
  3. Condividere l’immagine con altri sviluppatori e operatori, in modo che tutti possano lavorare sulla stessa base comune.
  4. Con lo sviluppo del business e l’evoluzione delle esigenze, modificare l’immagine, ricreare il commit, ricreare l’immagine e ridistribuirla.

Architettura di base di Docker