Yazılım

Docker ve Kubernetes: Başlangıç Rehberi

Modern uygulama geliştirme ve dağıtımının temel taşları olan Docker ve Kubernetes teknolojilerini bu başlangıç rehberiyle öğrenin.

Doğuş ŞEKERCİ

Doğuş ŞEKERCİ

Founder & CEO

20 Aralık 2024
18 dk okuma

Docker Nedir?

Docker, uygulamaları container (kapsayıcı) içinde paketlemeye ve çalıştırmaya yarayan bir platformdur. Container'lar, uygulamanızı ve tüm bağımlılıklarını izole bir ortamda çalıştırmanızı sağlar.

Docker'ın Avantajları

  1. Taşınabilirlik: "Bende çalışıyor" sorunu ortadan kalkar
  2. İzolasyon: Her uygulama kendi ortamında çalışır
  3. Hız: Saniyeler içinde başlatma
  4. Verimlilik: VM'lere göre daha az kaynak kullanımı

Docker Temel Kavramlar

Image

Container'ların şablonudur. Uygulamanız ve bağımlılıkları burada tanımlanır.

Container

Image'ın çalışan halidir.

Dockerfile

Image oluşturmak için kullanılan tarif dosyasıdır.

Netlen Platinum Sunucu Kampanyası

Temel Docker Komutları

bash
# Image çekme
docker pull nginx

# Container çalıştırma
docker run -d -p 80:80 nginx

# Container'ları listeleme
docker ps

# Container durdurma
docker stop <container_id>

# Image oluşturma
docker build -t myapp:1.0 .

Örnek Dockerfile

dockerfile
FROM node:18-alpine

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 3000

CMD ["npm", "start"]

Kubernetes Nedir?

Kubernetes (K8s), container'ları otomatik olarak dağıtan, ölçeklendiren ve yöneten bir orkestrasyon platformudur.

Kubernetes'in Faydaları

  • Otomatik ölçeklendirme: Trafik artınca pod sayısı artar
  • Self-healing: Hatalı container'lar otomatik yeniden başlatılır
  • Load balancing: Trafik otomatik dağıtılır
  • Rolling updates: Kesintisiz güncelleme

Kubernetes Temel Bileşenler

Pod

Kubernetes'in en küçük deploy edilebilir birimidir.

Deployment

Pod'ların nasıl oluşturulacağını tanımlar.

Service

Pod'lara erişimi sağlayan ağ servisidir.

Namespace

Kaynakları izole etmek için kullanılır.

Örnek Deployment YAML

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:1.25
        ports:
        - containerPort: 80

Temel kubectl Komutları

bash
# Pod'ları listeleme
kubectl get pods

# Deployment oluşturma
kubectl apply -f deployment.yaml

# Pod ölçeklendirme
kubectl scale deployment nginx --replicas=5

# Log görüntüleme
kubectl logs <pod_name>

Sonuç

Docker ve Kubernetes, modern uygulama geliştirmenin vazgeçilmez araçlarıdır. Bu rehber ile temel kavramları öğrendiniz, artık practice yaparak deneyim kazanabilirsiniz.


Docker ve Kubernetes workload'larınız için Bulut Sunucu çözümlerimizi inceleyin!

docker
kubernetes
container
devops

Bu yazıyı paylaşın

Doğuş ŞEKERCİ

Yazar Hakkında

Doğuş ŞEKERCİ

Founder & CEO

13 yıllık deneyimimle veri merkezi hizmetleri, fintech altyapıları, bulut sunucu teknolojileri ve siber güvenlik alanında çalışıyorum.

Yorumlar

Bu yazı hakkında okuyucu yorumları