Sobes.tech
Junior

Qual è la differenza tra un'immagine e un contenitore?

sobes.tech AI

Risposta dell'AI

Un'immagine (image) è una istantanea statica e immutabile del sistema di file e dei parametri di configurazione necessari per avviare un'applicazione. Serve come modello.

Un contenitore (container) è un'istanza in esecuzione di un'immagine. È dinamico e rappresenta un processo in esecuzione con la propria interfaccia di rete, sistema di file (basato sull'immagine) e ambiente isolato.

Caratteristica Immagine Contenitore
Stato Immutabile Mutabile
Entità Modello Istanza in esecuzione
Dimensione Di solito più piccola di un contenitore in esecuzione Può essere più grande a causa dello strato di scrittura
Ciclo di vita Creato, mantenuto Creato, avviato, fermato, eliminato

Esempio: Dockerfile:

# Immagine di base
FROM ubuntu:latest

# Copiare l'applicazione
COPY app /app

# Installare le dipendenze
RUN apt-get update && apt-get install -y python3

# Definire la directory di lavoro
WORKDIR /app

# Comando di avvio
CMD ["python3", "main.py"]

Questo Dockerfile descrive come costruire un'immagine. Dopo aver costruito l'immagine, ad esempio con il comando docker build -t myapp ., otteniamo un'immagine statica chiamata myapp.

Poi, eseguendo il comando docker run -d myapp, creiamo un contenitore basato su questa immagine. Questo contenitore è un processo attivo in cui viene eseguita la nostra applicazione. È possibile creare più contenitori da un'immagine. Le modifiche all'interno di un contenitore (ad esempio, la scrittura di file) non influenzano l'immagine stessa né altri contenitori creati dalla stessa, grazie al meccanismo Copy-on-Write.