Rehber
Container ve image arasındaki fark: yeni başlayanlar için net bir açıklama
Docker öğrenirken en çok karıştırılan iki kavram: image ve container. Aralarındaki ilişkiyi anlamak, Docker'ın geri kalanını anlamayı kolaylaştırır.
Docker'a yeni başlayanların en sık karıştırdığı iki terim 'image' ve 'container'dır. Aralarındaki ilişki aslında basit bir benzetmeyle netleşir: image bir yazılımın kurulum paketiyse, container o paketin çalıştırılmış, canlı halidir.
Sınıf ve nesne benzetmesi
Yazılım geliştirenler için tanıdık bir benzetme: image, nesne yönelimli programlamadaki bir 'sınıf' gibidir — statik bir şablondur. Container ise o sınıftan üretilmiş bir 'nesne' (instance) gibidir — çalışan, durumu olan, bellekte yer kaplayan gerçek bir örnektir. Aynı image'dan aynı anda birden fazla container çalıştırılabilir, tıpkı aynı sınıftan birden fazla nesne üretilebildiği gibi.
Image ve container'ın temel farkları
| Özellik | Image | Container |
|---|---|---|
| Ne olduğu | Değişmez (immutable), salt okunur bir dosya sistemi paketi | Image'dan türetilmiş, çalışan bir süreç |
| Durum (state) | Durumsuz — her zaman aynı içeriğe sahiptir | Durumlu olabilir — çalışırken içine yazılan veriler container'a özgüdür |
| Yaşam döngüsü | docker build ile oluşturulur, docker pull ile indirilir | docker run ile başlatılır, durdurulabilir, silinebilir |
| Depolama | Docker Hub veya özel bir registry'de saklanır | Yerel makinede/sunucuda çalışır durumdadır |
| Sayı ilişkisi | Bir image | Aynı image'dan sınırsız sayıda container |
Görsel örnek
Bir web sunucusu image'ı düşünün (örneğin nginx:latest). Bu image'dan üç ayrı container başlattığınızda, üçü de aynı temel dosya sistemiyle başlar ama her biri bağımsız çalışır — birinin içinde bir dosya değiştirmek diğerlerini etkilemez. Container durdurulup silindiğinde, o container'a özgü değişiklikler de (aksi belirtilmedikçe) kaybolur; image ise değişmeden kalır.
Pratik sonuç: neden önemli?
- Bir container'ı silip yeniden başlatmak, 'temiz bir sayfaya dönmek' anlamına gelir — image bozulmaz
- Aynı image'ı farklı ortamlarda (geliştirme, test, üretim) çalıştırmak, ortamlar arası tutarsızlığı büyük ölçüde azaltır
- Kalıcı veri (veritabanı gibi) container içinde değil, bir volume'da tutulmalı — aksi halde container silindiğinde veri de gider
Sonraki adım
Image ve container ayrımı netleştikten sonra, birden fazla container'ı (uygulama + veritabanı + önbellek gibi) birlikte yönetmek için Docker Compose öğrenmek doğal bir sonraki adımdır.
Kategoriler
Etiketler
Kaynaklar
Paylaş
İlgili içerikler
Web Sitesi İçin Güvenilir Yedekleme Stratejisi Nasıl Kurulur?
Bir sitenin veritabanı ve dosyalarını düzenli, test edilmiş ve farklı konumlarda yedekleyen bir stratejinin temel bileşenlerini anlatıyoruz.
2 dk okuma
Yazıyı okuDocker ile Web Uygulaması Dağıtımı: Temel Kavramlar
Docker konteynerlerinin ne olduğunu, geleneksel sunucu dağıtımından farkını ve web uygulamalarını konteynerleştirmenin avantajlarını anlatıyoruz.
2 dk okuma
Yazıyı okuCloudflare Workers ile Sunucusuz (Serverless) Fonksiyonlar
Cloudflare Workers, kod parçacıklarını uç sunucularda çalıştırmanızı sağlayan bir platform. Ne işe yaradığını ve tipik kullanım senaryolarını anlatıyoruz.
2 dk okuma
Yazıyı oku
