Tanım
Docker, bir uygulamayı tüm bağımlılıklarıyla birlikte imaj olarak paketleyip her Linux sunucuda aynı biçimde çalışan yalıtılmış konteynerler hâlinde çalıştırmayı sağlayan açık kaynaklı konteyner platformudur. Konteynerler ana sistemin çekirdeğini paylaşır; bu yüzden sanal makinelere göre çok daha hafif ve hızlı başlar.
Docker nasıl çalışır?
Docker, Linux çekirdeğindeki namespace ve cgroups özelliklerini kullanarak her konteyneri ayrı bir süreç, ağ ve dosya sistemi görünümüyle çalıştırır. Temel kavramlar şunlardır:
- İmaj (image): Uygulamanın ve bağımlılıklarının salt okunur paketi;
Dockerfileile tanımlanır. - Konteyner: İmajın çalışan örneği.
- Volume: Konteyner silinse de kalıcı olan veri alanı (veritabanı dosyaları gibi).
- Docker Compose: Birden çok konteyneri (ör. uygulama + veritabanı + Redis) tek bir
compose.yamldosyasıyla birlikte yöneten araç.
Docker ile sanal makine farkı nedir?
Docker konteyneri uygulamayı, sanal makine ise tüm işletim sistemini yalıtır. Sanal makine hypervisor üzerinde kendi çekirdeğiyle çalışır; konteyner ise ana sistemin çekirdeğini paylaşır. Bu nedenle konteynerler saniyeler içinde başlar ve az bellek harcar, ancak Linux konteynerleri yalnızca Linux çekirdeği üzerinde çalışır. Pratikte ikisi birlikte kullanılır: Docker, bir KVM sanal sunucunun içinde çalıştırılır.
Docker sunucuda nasıl kullanılır?
Docker'ı kullanmak için root erişimli bir Linux sunucu gerekir; paylaşımlı hostingte çalıştırılamaz. Ubuntu 24.04 LTS gibi bir dağıtımda kurulum için Docker kurulumu rehberini izleyebilirsiniz. n8n, Nextcloud, Uptime Kuma ya da bir Node.js uygulaması gibi servisleri Compose ile ayağa kaldırıp önüne bir reverse proxy koymak yaygın bir düzendir. Konteynerleri çalıştırmak için VPS sunucu ya da Docker sunucu seçeneklerine bakabilirsiniz.