Care este diferența dintre o imagine și un container?
sobes.tech AI
Răspuns de la AI
O imagine (imagine) este o captură statică și imuabilă a sistemului de fișiere și a parametrilor de configurare necesari pentru a porni o aplicație. Servește ca șablon.
Un container (container) este o instanță în execuție a unei imagini. Este dinamic și reprezintă un proces în funcțiune cu propria interfață de rețea, sistem de fișiere (bazat pe imagine) și mediu izolat.
| Caracteristică | Imagine | Container |
|---|---|---|
| Stare | Imuabilă | Modificabil |
| Entitate | Șablon | Instanță în funcțiune |
| Dimensiune | De obicei mai mic decât un container în funcțiune | Poate fi mai mare din cauza stratului de scriere |
| Ciclu de viață | Creat, stocat | Creat, pornit, oprit, șters |
Exemplu: Dockerfile:
# Imagine de bază
FROM ubuntu:latest
# Copierea aplicației
COPY app /app
# Instalarea dependențelor
RUN apt-get update && apt-get install -y python3
# Definirea directorului de lucru
WORKDIR /app
# Comanda de start
CMD ["python3", "main.py"]
Acest Dockerfile descrie cum să construiești o imagine. După construirea imaginii, de exemplu cu comanda docker build -t myapp ., obținem o imagine statică numită myapp.
Apoi, rulând comanda docker run -d myapp, creăm un container pe baza acestei imagini. Acest container este un proces activ în care rulează aplicația noastră. Se pot crea mai multe containere dintr-o singură imagine. Modificările din interiorul unui container (de exemplu, scrierea fișierelor) nu afectează imaginea sau alte containere create din aceeași, datorită mecanismului Copy-on-Write.