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.