GNU/Linux >> Linux Esercitazione >  >> Cent OS

Immagine Docker vs Container:le principali differenze

Introduzione

Docker è un software open source progettato per facilitare e semplificare lo sviluppo di applicazioni. È un insieme di prodotti platform-as-a-service che creano ambienti virtualizzati isolati per la creazione, la distribuzione e il test di applicazioni.

Sebbene il software sia relativamente semplice da padroneggiare, ci sono alcuni termini specifici di Docker che i nuovi utenti potrebbero trovare confusi. Dockerfile, immagini, contenitori, volumi e altra terminologia dovranno essere padroneggiati e nel tempo dovrebbero diventare una seconda natura.

È una buona idea cercare di comprendere i ruoli di base di questi elementi. Accelererà l'apprendimento su come lavorare con loro. Una delle domande che molti utenti si pongono è:

C Qual ​​è la differenza tra un'immagine Docker e un contenitore?

Questo articolo spiega come differiscono i due e come sono correlati. Leggi di più per scoprirlo.

Cos'è un'immagine Docker?

Un'immagine Docker è un file immutabile (non modificabile) che contiene il codice sorgente, le librerie, le dipendenze, gli strumenti e altri file necessari per l'esecuzione di un'applicazione.

A causa della loro sola lettura qualità, queste immagini sono talvolta denominate istantanee. Rappresentano un'applicazione e il suo ambiente virtuale in un momento specifico. Questa coerenza è una delle grandi caratteristiche di Docker. Consente agli sviluppatori di testare e sperimentare software in condizioni stabili e uniformi.

Poiché le immagini sono, in un certo senso, solo modelli , non è possibile avviarli o eseguirli. Quello che puoi fare è usare quel modello come base per costruire un contenitore. Un contenitore è, in definitiva, solo un'immagine in esecuzione. Una volta creato un contenitore, viene aggiunto un livello scrivibile sopra l'immagine immutabile, il che significa che ora puoi modificarlo.

La base dell'immagine su cui crei un contenitore esiste separatamente e non può essere modificata. Quando esegui un ambiente containerizzato, essenzialmente crei una copia di lettura-scrittura di quel filesystem (immagine docker) all'interno del contenitore. Questo aggiunge un livello contenitore  che consente la modifica dell'intera copia dell'immagine.

Puoi creare un numero illimitato di immagini Docker da una base di immagini . Ogni volta che modifichi lo stato iniziale di un'immagine e salvi lo stato esistente, crei un nuovo modello con un livello aggiuntivo sopra di esso.

Le immagini Docker possono quindi consistere in una serie di livelli , ciascuna diversa ma anche originaria della precedente. I livelli immagine rappresentano file di sola lettura a cui viene aggiunto un livello contenitore una volta utilizzato per avviare un ambiente virtuale.

Cos'è un Docker Container?

Un contenitore Docker è un ambiente di runtime virtualizzato in cui gli utenti possono isolare le applicazioni dal sistema sottostante. Questi contenitori sono unità compatte e portatili in cui è possibile avviare un'applicazione in modo rapido e semplice.

Una caratteristica preziosa è la standardizzazione dell'ambiente informatico in esecuzione all'interno del contenitore. Non solo garantisce che la tua applicazione funzioni in circostanze identiche, ma semplifica anche la condivisione con altri compagni di squadra.

Poiché i container sono autonomi, forniscono un forte isolamento, assicurando che non interrompano altri container in esecuzione, nonché il server che li supporta. Docker afferma che queste unità "forniscono le più potenti capacità di isolamento del settore". Pertanto, non dovrai preoccuparti di mantenere la tua macchina sicura durante lo sviluppo di un'applicazione.

A differenza delle macchine virtuali (VM) in cui la virtualizzazione avviene a livello di hardware, i container vengono virtualizzati a livello di app. Possono utilizzare una macchina, condividere il suo kernel e virtualizzare il sistema operativo per eseguire processi isolati. Ciò rende i contenitori estremamente leggeri , consentendoti di trattenere risorse preziose.

Immagini Docker vs Contenitori

Quando si discute della differenza tra immagini e contenitori, non è giusto metterli in contrasto come entità opposte. Entrambi gli elementi sono strettamente correlati e fanno parte di un sistema definito dalla piattaforma Docker.

Se hai letto le due sezioni precedenti che definiscono le immagini docker e i contenitori docker, potresti già avere una certa comprensione di come i due stabiliscono una relazione.

Le immagini possono esistere senza contenitori, mentre un contenitore deve eseguire un'immagine per esistere. Pertanto, i contenitori dipendono dalle immagini e le utilizzano per creare un ambiente di runtime ed eseguire un'applicazione.

I due concetti esistono come componenti essenziali (o meglio fasi) nel processo di esecuzione di un container Docker. Avere un contenitore in esecuzione è la "fase" finale di quel processo, a indicare che dipende dai passaggi e dai componenti precedenti. Ecco perché le immagini docker essenzialmente governano e modellano i contenitori.

Dal Dockerfile all'immagine al contenitore

Tutto inizia con uno script di istruzioni che definiscono come creare un'immagine Docker specifica. Questo script è chiamato Dockerfile. Il file esegue automaticamente i comandi delineati e crea un'immagine Docker .

Il comando per creare un'immagine da un Dockerfile è docker build .

L'immagine viene quindi utilizzata come modello (o base), che uno sviluppatore può copiare e utilizzarla per eseguire un'applicazione. L'applicazione necessita di un ambiente isolato in cui eseguire:un contenitore .

Questo ambiente non è solo uno “spazio” virtuale. Si basa interamente sull'immagine che lo ha creato. Il codice sorgente, i file, le dipendenze e le librerie binarie, che si trovano tutti nell'immagine Docker, sono quelli che costituiscono un contenitore.

Per creare un livello contenitore da un'immagine, usa il comando docker create .

Infine, dopo aver avviato un contenitore da un'immagine esistente, ne avvii il servizio ed esegui l'applicazione.


Cent OS
  1. 7 divertenti contenitori Linux/caratteristiche di trasporto di immagini

  2. Un'introduzione a Docker

  3. Aggiornamento di un container distribuito in base a un'immagine Docker

  4. Avvio di una shell nel container Docker Alpine

  5. Quale sistema operativo è in esecuzione nel mio container Docker?

Come installare AlmaLinux 8 Image in Docker Container

Come verificare se il demone Docker o un container è in esecuzione

Come ispezionare il contenuto di un'immagine Docker senza avviare un contenitore

Come creare un'immagine Docker da un contenitore in esecuzione

Come aggiornare le immagini Docker all'ultima versione

Come utilizzare Docker Commit per modificare le immagini del contenitore