Sobes.tech
Junior

Bir imaj ve konteyner arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir görüntü (image), uygulamayı başlatmak için gereken dosya sistemi ve yapılandırma parametrelerinin statik, değiştirilemez bir anlık görüntüsüdür. Şablon görevi görür.

Bir konteyner (container), bir görüntünün çalışan örneğidir. Dinamiktir ve kendi ağ arayüzü, dosya sistemi (görüntüye dayanır) ve izole bir ortam ile çalışan bir süreçtir.

Özellik Görüntü Konteyner
Durum Değiştirilemez Değiştirilebilir
Varlık Şablon Çalışan örnek
Boyut Çalışan bir konteynerden genellikle küçüktür Yazma katmanı nedeniyle daha büyük olabilir
Yaşam döngüsü Oluşturulur, saklanır Oluşturulur, başlatılır, durdurulur, silinir

Örnek: Dockerfile:

# Temel görüntü
FROM ubuntu:latest

# Uygulamayı kopyala
COPY app /app

# Bağımlılıkları yükle
RUN apt-get update && apt-get install -y python3

# Çalışma dizinini belirle
WORKDIR /app

# Başlatma komutu
CMD ["python3", "main.py"]

Bu Dockerfile, nasıl bir görüntü oluşturulacağını anlatır. Görüntü oluşturulduktan sonra, örneğin docker build -t myapp . komutuyla, statik bir myapp görüntüsü elde edilir.

Daha sonra, docker run -d myapp komutunu çalıştırarak, bu görüntüden bir konteyner oluştururuz. Bu konteyner, uygulamamızın çalıştığı aktif bir süreçtir. Aynı görüntüden birden fazla konteyner oluşturulabilir. Bir konteyner içindeki değişiklikler (örneğin, dosya kaydı), görüntüye veya aynı görüntüden başlatılan diğer konteynerlere zarar vermez, Copy-on-Write mekanizması sayesinde.