Tüm Yazılar

Docker Nedir, Ne İşe Yarar? Konteyner Mantığı ve Ubuntu'ya Docker Kurulumu

Tayhost Ekibi7 dk okuma

Docker nedir, ne işe yarar? Container ve sanal makine farkı, image, volume, Docker Compose ve Ubuntu sunucuya Docker kurulumu.

Kısa cevap: Docker, uygulamaları ihtiyaç duydukları her şeyle (kod, çalışma ortamı, kütüphaneler, ayarlar) birlikte konteyner (container) adı verilen yalıtılmış paketler hâlinde çalıştıran açık kaynaklı bir platformdur. "Benim bilgisayarımda çalışıyordu" sorununu ortadan kaldırır: bir konteyner geliştiricinin bilgisayarında nasıl çalışıyorsa sunucuda da aynı şekilde çalışır.

Docker Ne İşe Yarar?

  • Kolay kurulum: Karmaşık bir yazılımı (veritabanı, n8n, WordPress, Redis) tek komutla ayağa kaldırmak.
  • Tutarlılık: Geliştirme, test ve canlı ortamda birebir aynı çalışma ortamı.
  • Yalıtım: Aynı sunucuda farklı PHP, Node.js veya Python sürümleri gerektiren uygulamaları çakışmadan çalıştırmak.
  • Taşınabilirlik: Uygulamayı bir sunucudan diğerine kolayca taşımak.
  • Hızlı geri dönüş: Yeni sürüm sorun çıkarırsa önceki imaja saniyeler içinde dönmek.

Temel Kavramlar

Kavram Açıklama
Image (imaj) Uygulamanın çalışması için gereken her şeyi içeren, salt okunur şablon. Ör. nginx, postgres:16
Container (konteyner) Bir imajın çalışan örneği. Aynı imajdan birden fazla konteyner başlatılabilir
Dockerfile Kendi imajınızı oluşturmak için adımları tanımlayan metin dosyası
Volume Konteyner silinse bile kalıcı olması gereken verilerin (veritabanı dosyaları gibi) saklandığı alan
Registry İmajların saklandığı ve indirildiği depo. En bilineni Docker Hub
Docker Compose Birden fazla konteyneri (ör. uygulama + veritabanı + web sunucusu) tek bir YAML dosyasıyla birlikte yönetme aracı

Konteyner ile Sanal Makine Arasındaki Fark

Sanal Makine (VM) Konteyner
Yalıtım seviyesi Donanım seviyesinde; her VM'in kendi işletim sistemi çekirdeği var İşletim sistemi seviyesinde; çekirdek ana sistemle paylaşılır
Boyut GB'lar Genellikle MB'lar
Açılış süresi Dakikalar Saniyeler
Kaynak kullanımı Daha yüksek Daha düşük

İkisi rakip değil, birbirini tamamlar: En yaygın senaryo, bir VPS (sanal makine) kiralayıp içinde Docker konteynerleri çalıştırmaktır. Böylece hem sunucunun yalıtımından hem de konteynerlerin esnekliğinden yararlanırsınız. (Bkz. VPS Nedir?)

Ubuntu Sunucuya Docker Kurulumu

Ubuntu çalışan bir sunucuya SSH ile bağlandıktan sonra (bkz. SSH ile bağlanma) Docker'ın resmi kurulum betiğini kullanabilirsiniz:

curl -fsSL https://get.docker.com | sh
docker --version
docker compose version

Kurulumu test edin:

docker run --rm hello-world

"Hello from Docker!" mesajını görüyorsanız kurulum tamamdır.

İlk Örnek: Nginx Konteyneri

docker run -d --name web -p 80:80 nginx

Tarayıcıdan sunucunuzun IP adresine girdiğinizde Nginx karşılama sayfasını görürsünüz. Parametreler: -d arka planda çalıştır, --name konteynere isim ver, -p 80:80 sunucunun 80. portunu konteynerin 80. portuna bağla.

En Sık Kullanılan Komutlar

docker ps                 # çalışan konteynerler
docker ps -a              # tüm konteynerler
docker logs -f web        # konteyner loglarını izle
docker exec -it web sh    # konteynerin içine gir
docker stop web           # durdur
docker rm web             # sil
docker images             # indirilen imajlar
docker compose up -d      # compose dosyasındaki servisleri başlat
docker compose pull       # imajları güncelle

Docker ile Neler Kurabilirsiniz?

  • İş akışı otomasyonu: n8n kurulum rehberi
  • WordPress + MySQL
  • PostgreSQL, Redis gibi veritabanları
  • Uptime Kuma gibi izleme araçları
  • Kendi Node.js / Python uygulamalarınız (Node.js hosting)
  • Portainer gibi grafik arayüzlü Docker yönetim panelleri

Docker'ı Arayüzle Yönetmek

Komut satırı yerine web arayüzü istersen: konteynerleri görsel yönetmek için Portainer, GitHub'dan push'la yayınlama, otomatik SSL ve veritabanları için Coolify. Coolify kurulumu: Coolify nedir, VPS'e nasıl kurulur?

Güvenlik İpuçları

  • Portları gereksiz yere açmayın: Veritabanı gibi servisleri -p ile dışarıya açmak yerine konteynerler arası ağda tutun. Docker'ın yayınladığı portlar bazı kurulumlarda UFW kurallarını atlayabilir; bu yüzden neyi dışarı açtığınıza dikkat edin.
  • Resmi ve güvenilir imajlar kullanın.
  • Verileri volume'lerde tutun ve yedekleyin.
  • İmajları düzenli güncelleyin (docker compose pull && docker compose up -d).

Docker Çalıştırmak İçin Sunucu

Tayhost'un root erişimli Linux sunucularına Docker'ı yukarıdaki tek komutla kurabilir, istediğiniz konteynerleri çalıştırabilirsiniz. NVMe SSD, snapshot ve TL ile ödeme dahildir.

Sıkça Sorulan Sorular

Docker nedir?

Docker, uygulamaları çalışmak için gereken her şeyle birlikte konteyner adı verilen yalıtılmış paketlerde çalıştıran açık kaynaklı bir platformdur. Uygulamanın her ortamda aynı şekilde çalışmasını sağlar.

Docker ne işe yarar?

Yazılımları tek komutla kurmayı, farklı sürüm gerektiren uygulamaları aynı sunucuda çakışmadan çalıştırmayı, uygulamaları kolayca taşımayı ve geliştirme ile canlı ortamı birebir aynı tutmayı sağlar.

Container (konteyner) nedir?

Konteyner, bir Docker imajının çalışan, yalıtılmış örneğidir. Ana işletim sisteminin çekirdeğini paylaşır; bu sayede sanal makinelere göre çok daha hafiftir ve saniyeler içinde başlar.

Docker ile sanal makine arasındaki fark nedir?

Sanal makineler kendi işletim sistemi çekirdekleriyle donanım seviyesinde yalıtılır ve daha ağırdır. Konteynerler çekirdeği ana sistemle paylaşır, MB'lar boyutundadır ve saniyeler içinde açılır. Genellikle bir VPS içinde Docker konteynerleri çalıştırılır.

Docker ücretsiz mi?

Linux sunucularda kullanılan Docker Engine açık kaynaklı ve ücretsizdir. Masaüstü uygulaması Docker Desktop, belirli büyüklüğün üzerindeki şirketler için ücretli lisans gerektirir.

Docker İçin Hazır Linux Sunucu

Root erişimli, NVMe SSD'li sunucunuz dakikalar içinde hazır. TL ile ödeme, Türkçe destek. En uygun paket: aylık ₺709 (KDV dahil).