Docker ve Kubernetes Başlangıç Rehberi 2025

z

zafer ak

Yazar

31 December 2025 4 dakika okuma 134 görüntülenme
Docker ve Kubernetes Başlangıç Rehberi 2025
Container teknolojisine giriş: Docker ve Kubernetes nedir, nasıl kurulur ve kullanılır? Başlangıç seviyesinden ileri düzeye kapsamlı rehber.

Container teknolojisi, modern yazılım geliştirme ve dağıtımının temel taşı haline gelmiştir. Bu rehberde Docker ve Kubernetes'in temellerini öğreneceksiniz.

Container Teknolojisi

Container Nedir?

Container, bir uygulamayı ve tüm bağımlılıklarını (kütüphaneler, yapılandırmalar) bir paket içinde izole eden hafif bir sanallaştırma yöntemidir. Sanal makinelerden farklı olarak, container'lar işletim sistemi çekirdeğini paylaşır.

Container vs Sanal Makine

Özellik Container Sanal Makine
Başlangıç süresi Saniyeler Dakikalar
Boyut MB GB
İzolasyon Process seviyesi Tam izolasyon
Kaynak kullanımı Düşük Yüksek

Docker Nedir?

Docker, container'ları oluşturmak, dağıtmak ve çalıştırmak için kullanılan en popüler platformdur. 2013 yılında piyasaya sürülmüş ve container devrimini başlatmıştır.

Docker Logo ve Konteyner

Docker Kurulumu

Ubuntu/Debian:

# Eski versiyonları kaldır
sudo apt-get remove docker docker-engine docker.io containerd runc

# Repository kurulumu
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

# Docker GPG key ekle
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Repository ekle
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

# Docker kur
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Kullanıcıyı docker grubuna ekle
sudo usermod -aG docker $USER

Windows ve macOS:

Docker Desktop indirin ve kurun.

Temel Docker Komutları

# Container çalıştır
docker run hello-world

# Nginx container başlat
docker run -d -p 80:80 nginx

# Çalışan container'ları listele
docker ps

# Tüm container'ları listele
docker ps -a

# Container durdur
docker stop <container_id>

# Container sil
docker rm <container_id>

# Image listele
docker images

# Image indir
docker pull ubuntu:22.04

Dockerfile Yazımı

Kendi Docker image'ınızı oluşturmak için Dockerfile kullanılır:

# Base image
FROM node:18-alpine

# Çalışma dizini
WORKDIR /app

# Dependency dosyalarını kopyala
COPY package*.json ./

# Dependency'leri yükle
RUN npm install

# Uygulama kodunu kopyala
COPY . .

# Port aç
EXPOSE 3000

# Uygulamayı başlat
CMD ["npm", "start"]
# Image oluştur
docker build -t my-app:1.0 .

# Container çalıştır
docker run -d -p 3000:3000 my-app:1.0
DevOps ve Container

Docker Compose

Birden fazla container'ı tanımlamak ve yönetmek için Docker Compose kullanılır:

# docker-compose.yml
version: '3.8'

services:
  web:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db
    environment:
      - DATABASE_URL=postgres://user:pass@db:5432/mydb

  db:
    image: postgres:15
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=mydb

volumes:
  postgres_data:
# Compose ile başlat
docker compose up -d

# Logları görüntüle
docker compose logs -f

# Durdur ve kaldır
docker compose down

Kubernetes Nedir?

Kubernetes (K8s), Google tarafından geliştirilen açık kaynaklı bir container orkestrasyon platformudur. Container'ları otomatik olarak dağıtır, ölçeklendirir ve yönetir.

Kubernetes Mimarisi

  • Control Plane: Cluster'ı yöneten bileşenler (API Server, etcd, Scheduler)
  • Node: Container'ların çalıştığı worker makineler
  • Pod: En küçük dağıtım birimi (bir veya daha fazla container)
  • Service: Pod'lara erişim sağlayan ağ soyutlaması
  • Deployment: Pod'ların istenen durumunu tanımlar

Minikube ile Lokal Kubernetes

# Minikube kurulumu (macOS)
brew install minikube

# Cluster başlat
minikube start

# kubectl yükle
brew install kubectl

# Cluster durumunu kontrol et
kubectl cluster-info
kubectl get nodes

Kubernetes Deployment Örneği

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
  - port: 80
    targetPort: 80
  type: LoadBalancer
# Deploy et
kubectl apply -f deployment.yaml

# Pod'ları listele
kubectl get pods

# Service'leri listele
kubectl get services

# Ölçeklendir
kubectl scale deployment nginx-deployment --replicas=5

Sonuç

Docker ve Kubernetes, modern DevOps pratiklerinin temelini oluşturur. Docker ile uygulamalarınızı container'lara paketleyebilir, Kubernetes ile bunları ölçekli bir şekilde yönetebilirsiniz.

Öğrenme yolu:

  1. Docker temellerini öğrenin
  2. Dockerfile yazmayı pratik edin
  3. Docker Compose ile çoklu container'ları yönetin
  4. Kubernetes kavramlarını anlayın
  5. Minikube ile lokal deneyim kazanın
  6. Managed Kubernetes (EKS, GKE, AKS) kullanın

İlgili Yazılar