# Docker Image

Adres: https://softwaredictionary.org/tr/terimler/docker-image
Kategori: DevOps ve Bulut
Son güncelleme: 2026-10-06
Türkçe karşılığı: docker imajı, konteyner imajı, kapsayıcı görüntüsü
Okunuşu: dokır imic

Kısaca: Docker image, bir uygulamayı, bağımlılıklarını ve ayarlarını içeren, salt okunur ve katmanlı bir pakettir; konteynerler bu şablondan başlatılır.

## Docker image nedir?

Docker image (imaj), bir uygulamanın çalışmak için ihtiyaç duyduğu her şeyi taşır: kodunu, Node.js ya da Python gibi bir çalışma zamanını, sistem kütüphanelerini, dosyaları ve varsayılan komut, ortam değişkenleri ve dinlediği port gibi meta verileri. İmajlar salt okunurdur; `postgres:17` gibi bir ad ve etiketle (tag) ve içeriklerinin SHA-256 özeti olan bir digest ile tanımlanır. Docker imajları Open Container Initiative (OCI) biçiminde oluşturur; bu yüzden aynı imaj containerd, Podman ve Kubernetes üzerinde de çalışır ve konteyner imajı (container image) diye de anılır.

Bir imaj, `docker build` ile bir `Dockerfile`'dan derlenir. `COPY` ya da `RUN` gibi dosyaları değiştiren her talimat, yalnızca bu değişiklikleri kaydeden bir katman ekler. Katmanlar önbelleğe alınır ve paylaşılır: aynı temel imaj üzerine kurulu on imaj o temeli yalnızca bir kez saklar; kod değiştikten sonra yapılan bir derleme de değişen adımdan önceki her katmanı yeniden kullanır. İmajlar Docker Hub gibi registry'ler üzerinden paylaşılır; tek bir imaj adı amd64 ve arm64 gibi birkaç işlemci mimarisini kapsayabilir.

Aradaki ilişki, programlamadaki bir sınıf ile nesneleri ya da bir kurabiye kalıbı ile kurabiyeler gibidir: imaj şablondur, her konteyner de ondan üretilmiş bir örnektir. Bir konteyner başladığında Docker imajın üstüne ince, yazılabilir bir katman ekler. Konteynerin değiştirdiği dosyalar bu katmana gider, imajın kendisi hiç değişmez ve aynı imajdan aynı anda birçok konteyner çalışabilir.

En yaygın karışıklık imaj ile konteyner arasındadır. İmaj, derleyip sakladığınız ve kopyaladığınız durağan bir çıktıdır; konteyner ise onun kendi süreçleri, yazılabilir katmanı ve ağı olan, çalışan ya da durdurulmuş bir örneğidir. Bir konteyneri silmek imajını silmez; bir konteynerin içinde yapılan değişiklikler de bir volume'a kaydedilmedikçe konteyner kaldırıldığında kaybolur. `Dockerfile` ise üçüncü bir şeydir: imajı üreten tarif.

## Önemli noktalar

- Docker image, bir uygulamayı, bağımlılıklarını ve ayarlarını içeren salt okunur bir şablondur.
- Bir Dockerfile'dan katman katman derlenir; katmanlar önbelleğe alınır ve paylaşılır.
- Etiketler sürümleri adlandırır; digest ise tam içeriği tanımlar.
- İmajlar OCI biçimine uyar, bu yüzden uyumlu her çalışma zamanında çalışır.
- İmaj şablondur; konteyner onun çalışan bir örneğidir.

## Örnek: Dockerfile'dan imaja, imajdan konteynerlere

```bash
# Build an image from the Dockerfile in this folder and tag it
docker build -t shop-api:1.0 .

# List local images and look at the layers of this one
docker image ls
docker history shop-api:1.0

# Start two independent containers from the same image
docker run -d --name api-1 -p 8081:3000 shop-api:1.0
docker run -d --name api-2 -p 8082:3000 shop-api:1.0

# Removing the containers leaves the image untouched
docker rm -f api-1 api-2
docker image ls shop-api
```

## Sık sorulan sorular

**Docker image ile konteyner arasındaki fark nedir?**

İmaj salt okunur bir şablondur; konteyner ise ondan oluşturulan, kendi yazılabilir katmanı olan çalışan bir örnektir. Bir imajdan birçok konteyner başlatabilirsiniz; onları kaldırmak imajı yerinde bırakır.

**Docker imajları nerede saklanır?**

Yerelde, Docker'ın makinenizde yönettiği depolamada; uzakta ise Docker Hub, GitHub Container Registry ya da bir bulut sağlayıcısının registry'si gibi, her sunucunun onları çekebildiği konteyner registry'lerinde.

**Bir Docker imajını nasıl küçültebilirim?**

Alpine, slim ya da distroless sürümü gibi küçük bir temel imajla başlayın, derleyiciler ve derleme araçları son imaja girmesin diye çok aşamalı (multi-stage) bir derleme kullanın ve imajın ihtiyaç duymadığı dosyaları `.dockerignore` içinde listeleyin.

## Kaynaklar

- [Docker documentation: What is an image?](https://docs.docker.com/get-started/docker-concepts/the-basics/what-is-an-image/)
- [Docker documentation: Understanding the image layers](https://docs.docker.com/get-started/docker-concepts/building-images/understanding-image-layers/)
- [Open Container Initiative: Image Format Specification](https://github.com/opencontainers/image-spec)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
