# Docker

Adres: https://softwaredictionary.org/tr/terimler/docker
Kategori: DevOps ve Bulut
Son güncelleme: 2026-09-29
Okunuşu: dokır

Kısaca: Docker, bir uygulamayı ve ihtiyaç duyduğu her şeyi, her makinede aynı şekilde çalışan bir konteyner içinde paketlemeye yarayan açık kaynaklı bir platformdur.

## Docker nedir?

Docker, konteynerleri oluşturmak, paylaşmak ve çalıştırmak için kullanılan bir araçtır. Bir uygulamayı çalışma zamanı, kütüphaneler ve yapılandırmasıyla birlikte tek bir birim halinde paketler; böylece uygulama bir geliştiricinin dizüstü bilgisayarında, test sunucusunda ve canlı ortamda aynı şekilde davranır. Bu, klasik "bende çalışıyordu" sorununu çözer.

Uygulamanızın nasıl derleneceğini `Dockerfile` adlı bir metin dosyasında tarif edersiniz. `docker build` çalıştırmak bunu katmanlar halinde saklanan, salt okunur bir şablon olan imaja dönüştürür; `docker run` ise o imajın canlı ve yalıtılmış bir örneği olan konteyneri başlatır. İmajlar Docker Hub gibi registry'ler üzerinden paylaşılır; Docker Compose ise bir uygulama ile veritabanı gibi çok konteynerli yapıları tek komutla tanımlayıp başlatmanızı sağlar.

Fikir, nakliye konteynerlerinden esinlenmiştir: standart konteynerlerden önce her yük türü özel elleçleme gerektirirdi, oysa standart bir kutu her gemiye, trene ya da kamyona sığar. Docker imajları da aynı şekilde, uyumlu bir konteyner çalışma zamanına sahip her makinede çalışır.

Docker sıklıkla konteynerlerin kendisiyle ya da Kubernetes ile karıştırılır. Konteynerler temeldeki teknolojidir; Docker onları popüler ve kolay kullanılır hale getirmiştir. Docker ile oluşturulan imajlar açık OCI standardına uyar, bu yüzden containerd ve Podman gibi diğer çalışma zamanlarında da çalışır. Kubernetes ise birçok konteyneri bir makine kümesi üzerinde çalıştıran ve yöneten ayrı bir sistemdir.

## Önemli noktalar

- Docker, bir uygulamayı ve bağımlılıklarını bir konteyner imajında paketler.
- İmajın nasıl oluşturulacağını bir `Dockerfile` tanımlar.
- İmaj şablondur; konteyner ise onun çalışan bir örneğidir.
- Docker Compose, çok konteynerli uygulamaları tek makinede çalıştırır.
- Docker imajları OCI standardına uyar ve diğer konteyner çalışma zamanlarıyla da çalışır.

## Örnek: Bir Node.js uygulaması için Dockerfile

```dockerfile
# Start from an official Node.js base image
FROM node:24-alpine

# Set the working directory inside the container
WORKDIR /app

# Install dependencies first to take advantage of layer caching
COPY package*.json ./
RUN npm ci --omit=dev

# Copy the rest of the source code and define the start command
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
```

## Sık sorulan sorular

**Docker ile sanal makine arasındaki fark nedir?**

Sanal makine, kendi işletim sistemiyle tam bir bilgisayarı taklit eder; Docker konteyneri ise ana makinenin çekirdeğini paylaşır ve yalnızca uygulamayı ile bağımlılıklarını yalıtır. Sonuç olarak konteynerler çok daha küçüktür ve saniyeler içinde ya da daha kısa sürede başlar; sanal makineler ise daha güçlü yalıtım sağlar.

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

İmaj, uygulamayı ve bağımlılıklarını içeren salt okunur bir şablondur. Konteyner ise bu imajdan oluşturulan çalışan bir örnektir ve aynı imajdan birçok konteyner başlatabilirsiniz.

**Docker ile Kubernetes arasındaki fark nedir?**

Docker konteynerleri oluşturur ve genellikle tek bir makinede çalıştırır. Kubernetes ise bir makine kümesindeki birçok konteyneri düzenler; zamanlama, ölçekleme ve arızalardan kurtarmayı üstlenir.

## Kaynaklar

- [Docker documentation: What is Docker?](https://docs.docker.com/get-started/docker-overview/)

---

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