Le immagini e i container Docker servono a eseguire le ap­pli­ca­zio­ni in ambienti isolati e a far sì che questi ambienti possano essere avviati. Rap­pre­sen­ta­no quindi due dei com­po­nen­ti più im­por­tan­ti della piat­ta­for­ma di vir­tua­liz­za­zio­ne e dell’eco­si­ste­ma Docker. Ti spie­ghia­mo cosa si­gni­fi­ca­no i termini “immagine” e “container”, per poi ap­pro­fon­di­re le loro so­mi­glian­ze e dif­fe­ren­ze.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estre­ma­men­te van­tag­gio­se e potenti core dedicati
  • Massima fles­si­bi­li­tà senza periodo con­trat­tua­le minimo
  • Servizio di as­si­sten­za tecnica 24 ore su 24, 7 giorni su 7

I container Docker

I container Docker sono unità isolate di ese­cu­zio­ne per le ap­pli­ca­zio­ni e le loro di­pen­den­ze. Sotto questo aspetto, sono molto simili alle macchine virtuali, ma con alcune im­por­tan­ti dif­fe­ren­ze. La dif­fe­ren­za prin­ci­pa­le è che il grado di iso­la­men­to dei container è leg­ger­men­te inferiore rispetto alle macchine virtuali, in quanto non è ne­ces­sa­rio vir­tua­liz­za­re un sistema operativo ag­giun­ti­vo. Al contrario, i container con­di­vi­do­no il sistema operativo e il nucleo del sistema che li ospita. Ciò offre alcuni vantaggi che fa­ci­li­ta­no e ac­ce­le­ra­no lo sviluppo delle ap­pli­ca­zio­ni, ma presenta anche alcuni svantaggi.

Il consumo di risorse dei container è net­ta­men­te ridotto rispetto a quello delle macchine virtuali, il che consente di ottenere pre­sta­zio­ni migliori con i container e di avviarli più ra­pi­da­men­te. Rispetto alle macchine virtuali sono anche molto più portabili, in quanto è suf­fi­cien­te tra­sfe­ri­re l’ap­pli­ca­zio­ne da eseguire e le relative di­pen­den­ze. Il basso overhead dei container Docker offre l’ulteriore vantaggio di eseguire più container con­tem­po­ra­nea­men­te sullo stesso sistema.

Uno svan­tag­gio di questo livello inferiore di iso­la­men­to è che i container offrono una minore sicurezza rispetto alle macchine virtuali. Poiché tutti i container hanno accesso al kernel del sistema operativo, un container “infetto” potrebbe causare seri danni. Nel caso in cui dovessi svi­lup­pa­re ap­pli­ca­zio­ni che ri­chie­do­no un livello di sicurezza più elevato, ti con­si­glia­mo di preferire l’utilizzo di una macchina virtuale ai container.

Consiglio

Poiché i container Docker con­ten­go­no tutte le di­pen­den­ze ne­ces­sa­rie, possono rendere il fun­zio­na­men­to delle ap­pli­ca­zio­ni web si­gni­fi­ca­ti­va­men­te più semplice per te e per gli utenti finali. Il server cloud di IONOS può essere con­fi­gu­ra­to in modo da avere Docker già pre­in­stal­la­to.

Le immagini Docker

Un’immagine Docker è un modello di sola lettura che viene uti­liz­za­to dal motore di Docker per creare un container. I container Docker possono quindi essere intesi come istanze in ese­cu­zio­ne delle immagini Docker. Questo modello contiene le di­pen­den­ze dell’ap­pli­ca­zio­ne che si vuole eseguire, l’ambiente di ese­cu­zio­ne ne­ces­sa­rio e il codice dell’ap­pli­ca­zio­ne stessa. Le immagini servono perciò come modello per i container, che servono a loro volta a creare ambienti di ese­cu­zio­ne con­si­sten­ti e ri­pro­du­ci­bi­li per le ap­pli­ca­zio­ni.

Le immagini Docker vengono salvate come file binari, ma possono anche essere ar­chi­via­te in formati leggibili dagli esseri umani. Questi file testuali sono chiamati Doc­ker­fi­le e con­ten­go­no tutte le istru­zio­ni ne­ces­sa­rie per ri­pri­sti­na­re l’immagine. Sia le immagini che i file Docker sono portabili e possono quindi essere tra­sfe­ri­ti molto fa­cil­men­te da un sistema a un altro. Le immagini Docker possono dunque essere salvate nei re­po­si­to­ry del registro Docker, ad esempio Docker Hub, e da lì scaricate. Le istanze dei container in ese­cu­zio­ne possono a loro volta essere salvate come file immagine, uti­liz­zan­do il comando di Docker docker commit.

Consiglio

Durante lo sviluppo di ap­pli­ca­zio­ni è im­por­tan­te tenere lo spazio di lavoro pulito e ordinato. Se da tempo lavori con numerosi container e immagini, ne hai si­cu­ra­men­te alcuni sul computer di cui non hai più bisogno. Leggi i nostri articoli su come eliminare i container Docker superflui e come rimuovere le immagini Docker.

Immagini o container di Docker: qual è la dif­fe­ren­za?

Le immagini e i container Docker sono fon­da­men­tal­men­te la stessa cosa, ma in forme diverse. Un’immagine è un modello di sola lettura per un container, che contiene tutti i file, le di­pen­den­ze e gli ambienti di runtime necessari per l’ese­cu­zio­ne di un’ap­pli­ca­zio­ne, oltre a contenere l’ap­pli­ca­zio­ne stessa. Invece, un container è un’istanza in ese­cu­zio­ne, non di sola lettura, del file immagine cor­ri­spon­den­te. Proprio come un programma in ese­cu­zio­ne è un’istanza dei file di programma in­stal­la­ti sul disco rigido del computer.

Quindi, un’immagine è un file binario salvato nel file system dell’host, mentre un container è un processo in ese­cu­zio­ne che avviene nella RAM del sistema. Così come un’immagine Docker viene uti­liz­za­ta per creare un container Docker, anche un container in ese­cu­zio­ne può essere salvato come immagine. L’immagine prodotta può a sua volta essere uti­liz­za­ta per replicare nuo­va­men­te lo stesso container.

Consiglio

Il termine “Docker” non comprende solo le immagini, i container e il motore Docker: nel tempo, si è svi­lup­pa­to un vero e proprio eco­si­ste­ma di strumenti Docker. Ne fanno parte una serie di utili strumenti e piat­ta­for­me come Docker Hub, Docker Swarm e Docker Machine. Leggi il nostro articolo per scoprirne di più al riguardo.

Vai al menu prin­ci­pa­le