Docker Nedir, Ne İşe Yarar? Konteyner Mantığı ve Ubuntu'ya Docker Kurulumu
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
-pile 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).