Sobes.tech
Junior

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.