← Back to list

🐳 Docker Swarm: Container Orkestrasyonuna İlk Adım

Docker ile tekil container’ları yönetmek kolaydır. Ama iş büyüyüp birden fazla sunucuda onlarca container çalıştırmaya geldiğinde işler…

Edip Uzan · 2025-09-01 09:43 · 350 claps · 2.3 min read
#docker-swarm #docker #docker-compose #kubernetes #containers
Open on Medium ↗
Wiki topics: OPS · LLMOps & Inference ☁️ · DevOps & Cloud 🐾 · Pets & Animals

🐳 Docker Swarm: Container Orkestrasyonuna İlk Adım

Docker ile tekil container’ları yönetmek kolaydır. Ama iş büyüyüp birden fazla sunucuda onlarca container çalıştırmaya geldiğinde işler karışır. İşte bu noktada orkestrasyon ihtiyacı ortaya çıkar.

Kubernetes bu işin en popüler çözümü olsa da, öğrenmesi biraz daha karmaşıktır. Docker’ın kendi içinde sunduğu daha basit bir çözüm vardır: Docker Swarm.

🔹 Docker Swarm Nedir?

Docker Swarm, birden fazla Docker host’u (node) bir araya getirerek bunları tek bir cluster gibi yönetmemizi sağlar.

Temel kavramlar:

  • Manager Node → Cluster’ı yöneten, hangi container nerede çalışacak kararını veren node
  • Worker Node → Manager’ın verdiği görevleri yerine getiren işçi node
  • Service → Bir container grubunu tanımlar (ör. 3 kopya nginx)
  • Task → Service’in tekil bir container örneği

🔹 Neden Docker Swarm?

  • ⚖️ Yük dengeleme (Load Balancing) → Servis trafiği otomatik dağıtılır
  • 🛡️ Yüksek erişilebilirlik (High Availability) → Node çökerse container başka node’da yeniden başlatılır
  • 📈 Ölçeklendirme (Scaling) → Tek komutla container sayısı artırılıp azaltılabilir
  • 🎛️ Kolay yönetim → Tek Docker CLI üzerinden tüm cluster yönetilebilir

🔹 Swarm Cluster Nasıl Kurulur?

Kurulum işletim sistemine göre farklılık gösterebilir:

  • Linux → Docker Engine kuruluysa Swarm desteği içindedir, ayrıca kurulum gerekmez
  • Docker Desktop (Windows / macOS) → Swarm özelliği varsayılan olarak gelir, direkt kullanılabilir
  • Windows Server (Linux olmayan) → Swarm desteği sınırlıdır, genellikle Linux node’larla cluster kurulur

Manager node’da Swarm’ı başlatmak için:

docker swarm init

👉 Çıktıda size bir docker swarm join komutu verilecektir. Bu komutu diğer makinelerde çalıştırarak cluster’a Worker node ekleyebilirsiniz.

🔹 Play with Docker: Hızlı Deneme Ortamı

Swarm’ı kendi bilgisayarınıza kurmak istemezseniz, Play with Docker üzerinden deneyebilirsiniz.

  • Adres: https://labs.play-with-docker.com
  • GitHub veya Docker Hub hesabıyla giriş yapabilirsiniz
  • Size tarayıcı üzerinden sanal makineler verir
  • Bu makinelerde docker swarm init ve docker swarm join komutlarını çalıştırarak gerçek bir cluster oluşturabilirsiniz
  • Ücretsizdir, ancak oturumlar 4 saat sonra kapanır

👉 Özellikle öğrenme ve deneme amaçlı Swarm için harika bir ortamdır.

🔹 Service ve Replicas

Bir servis oluşturmak için:

docker service create --name web --replicas 3 -p 80:80 nginx
  • --replicas 3 → 3 adet Nginx container çalıştırılır
  • Swarm, bu container’ları farklı node’lara dağıtır
  • Çalışan servisleri listelemek için:
docker service ls

🔹 Ölçeklendirme

Servisi kolayca büyütüp küçültebilirsiniz:

docker service scale web=5

👉 Artık 5 kopya Nginx container çalışıyor.

🔹 Rolling Update

Swarm servisleri kesintisiz güncelleyebilir:

docker service update --image nginx:1.25 web

👉 Container’lar sırayla güncellenir, sistem hiç durmaz.

🔹 Logları Görmek

Swarm servisinin tüm container loglarını tek ekranda görebilirsiniz:

docker service logs web

👉 Özellikle birden fazla node’daki container’ların davranışını takip etmek için çok faydalıdır.

🔹 CPU Kısıtlama (Opsiyonel)

Büyük sistemlerde kaynak yönetimi önemlidir. Swarm’da servis başlatırken CPU kısıtlaması ekleyebilirsiniz:

docker service create \
  --name web \
  --replicas 3 \
  --limit-cpu 1.5 \
  -p 80:80 \
  nginx

👉 Burada her container en fazla 1.5 CPU core kullanabilir.

Ayrıca minimum kaynak garantisi için:

docker service create \
  --name db \
  --reserve-cpu 1 \
  mysql:8.0

👉 Böylece sistemin kaynaklarını daha verimli ve kontrollü şekilde kullanabilirsiniz.

🔹 Swarm’dan Çıkış

  • Worker node’u çıkarmak için:
docker swarm leave
  • Manager node’u çıkarmak için:
docker swarm leave --force

🎯 Sonuç

Docker Swarm ile:

  • Birden fazla node’u tek bir cluster halinde yönetebilir
  • Servisleri kolayca ölçeklendirebilir
  • Yük dengeleme ve yüksek erişilebilirlik sağlayabilir
  • Rolling update ile kesintisiz güncellemeler yapabilirsiniz

Kubernetes kadar kapsamlı olmasa da, Docker Swarm öğrenmesi kolay, kurulumu hızlı bir çözüm. Özellikle Play with Docker gibi ortamlarda birkaç deneme yaparak orkestrasyonun gücünü hızlıca görebilirsiniz. 🚀

Docker ile ilgili diğer yazılarımı incelemeyi unutmayın!🎉

📚 Referanslar


메타데이터
post_id
40e17a5e44bf
slug
docker-swarm-container-orkestrasyonuna-i̇lk-adım-40e17a5e44bf
url
https://medium.com/@edpuzn/docker-swarm-container-orkestrasyonuna-i%CC%87lk-ad%C4%B1m-40e17a5e44bf
canonical_url
https://medium.com/@edpuzn/docker-swarm-container-orkestrasyonuna-i%CC%87lk-ad%C4%B1m-40e17a5e44bf
author_url
https://medium.com/@edpuzn
status
ok
fetched_at
2026-06-11 05:11:55