Bu sayfada · 12 başlık
Docker belgelerinde image ve container sözcükleri yan yana geçer ama aynı şey değildir. Image bir uygulamayı başlatmak için kullanılan dosya sistemi ve yapılandırma şablonudur. Container bu image’dan oluşturulan, çalıştırılabilen veya durdurulabilen bir örnektir.
Önce neyi çözmek istediğini belirle
İlk container’ı çalıştırıp neden hemen durduğunu anlamayı hedefliyoruz. Kurulum biçimi, lisans koşulları ve sistem gereksinimleri için resmi Docker yönergeleri esas alınmalıdır.
Adım adım uygula
- 1 Resmi örnekle başla. Docker kurulumu ve motorun çalıştığını kontrol et. Deneme için resmi hello-world image’ını kullan; bilinmeyen bir komutu yönetici yetkisiyle çalıştırma.
- 2 Örneği incele. docker ps çalışan container’ları gösterir; docker ps -a durmuş olanları da listeler. hello-world işini bitirince durduğu için ilk listede görünmeyebilir.
- 3 Veriyi ayrı düşün. Container silinince onun yazılabilir katmanındaki veri kaybolabilir. Kalıcı veride volume planla; image yedekleme ile veritabanı yedeklemenin aynı olmadığını bil.
Küçük bir örnek
docker --version
docker run hello-world
docker ps -a
docker images
Sık takılınan nokta
Container bir sanal makineyle aynı yapı değildir. Bir servise port açmak da onu otomatik güvenli yapmaz. Özellikle veritabanı parolalarını image içine veya Dockerfile’a yazma.
Şimdi kendin dene
Deneme ortamında hello-world çalıştır. Oluşan container ve kullanılan image’ı listede bul; hangisinin çalıştırılabilir örnek, hangisinin şablon olduğunu kendi cümlelerinle açıkla.
Bir sonraki adım Konuyu örneklerle çalış → →Docker Image ve Container Kavramlarının Teknik Karşılaştırması
| Özellik | Docker Image (Görüntü) | Docker Container (Konteyner) | Pratik Karşılığı |
|---|---|---|---|
| Yapısı | Salt okunur (Read-only) katmanlı dosya şablonu | Image üzerine yazılabilir (Read-write) katman eklenmiş çalışan süreç | Image = Yemek tarifi / Sınıf (Class), Container = Pişmiş yemek / Nesne (Instance) |
| Yaşam Döngüsü | Diskte durur, silinene kadar değişmez | Başlatılır (`start`), durdurulur (`stop`), silinir (`rm`) | Aynı image'dan 10 farklı container aynı anda ayağa kaldırılabilir |
| Veri Kalıcılığı | İçindeki dosyalar sabittir | Container silindiğinde içindeki geçici veriler silinir (Volume bağlanmadıysa) | Veritabanı dosyaları için mutlaka `-v` ile Volume kullanılmalıdır |
| Temel Komutlar | `docker images`, `docker pull`, `docker build`, `docker rmi` | `docker run`, `docker ps`, `docker stop`, `docker logs`, `docker rm` | Görüntü yönetimi vs süreç yönetimi |
Gerçek Hayatta Karar Verme ve Uygulama Senaryoları
- Container neden çalışır çalışmaz Exited (0) durumuna düşüyor?: Container içindeki ana süreç (örneğin `hello-world` veya tek seferlik bir betik) işini bitirdiğinde container doğal olarak kapanır. Web sunucusu (Nginx, Node.js) gibi sürekli dinleyen süreçler ise ön planda açık kalır.
- Aynı image'dan birden fazla portta container çalıştırma: `docker run -d -p 8081:80 nginx` ve `docker run -d -p 8082:80 nginx` komutlarıyla tek bir Nginx image şablonundan birbirinden tamamen yalıtılmış iki ayrı web sunucusu başlatabilirsin.
- Veritabanı güncellemelerinin silinmesini önleme: PostgreSQL veya MySQL container'ı oluştururken `-v pgdata:/var/lib/postgresql/data` parametresiyle veriyi ana makinedeki kalıcı bir birime (Volume) bağla.
Adım Adım Dockerfile’dan Image ve Container Üretme Senaryosu
Kendi yazdığın bir Python veya Node.js uygulamasını ekip arkadaşının bilgisayarında hiçbir kurulum gerektirmeden çalıştırmak için şu 3 adımlı akışı izlersin: Dockerfile (Tarif) → docker build (Image) → docker run (Container).
# 1. Image kalıbını oluştur (sonundaki noktaya dikkat et)
docker build -t benim-uygulamam:v1 .
# 2. Bu image kalıbından 8080 portunda çalışan bir container başlat
docker run -d --name aktif-servis -p 8080:80 benim-uygulamam:v1
# 3. Çalışan container günlüğünü (log) incele ve durdur
docker logs aktif-servis
docker stop aktif-servis
Sıkça Sorulan Sorular (SSS)
Bir container'ı silersem image da silinir mi? +
Hayır. `docker rm` yalnızca çalışan veya durmuş örneği (container) siler; kalıp olan image diskte kalır ve ondan saniyeler içinde yeni bir container başlatabilirsin.
Container içinde yaptığım değişiklik kalıcı olur mu? +
Container üzerinde `docker rm` çalıştırıldığında yazılabilir katman silinir. Kalıcı olmasını istediğin yapılandırmaları `Dockerfile` içine yazıp yeni bir image derlemeli, verileri ise `Volume` içinde tutmalısın.
Kaynak ve devamı
Yayın: · Güncelleme:
Yazan
Webino App Ekibi
Teknolojiyi sade Türkçeyle anlatan rehberler. Örnekleri kendin deneyebilir, bağlantılı resmi belgelerle konuyu derinleştirebilirsin.
Bunları da okuyabilirsin
Tüm yazılar →Yorumlar
Soruların ya da eklemek istediklerin varsa yaz.
Bu içerik işine yaradı mı?
Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.


