LIONFIN

Sözlük

Docker nedir?

Diğer adları: docker konteyner, docker container, docker compose, konteyner

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; Dockerfile ile 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.yaml dosyası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.

İlgili terimler

Hypervisor
Hypervisor, fiziksel bir bilgisayarın işlemci, bellek, disk ve ağ kaynaklarını birden çok sanal makineye paylaştıran ve bu sanal makineleri...
KVM
KVM (Kernel-based Virtual Machine), Linux çekirdeğini bir hypervisor'a dönüştüren, açık kaynaklı tam sanallaştırma teknolojisidir. Her sanal...
LXC
LXC (Linux Containers), Linux çekirdeğindeki cgroups ve namespace özelliklerini kullanarak tek bir çekirdek üzerinde birbirinden yalıtılmış...
Reverse Proxy
Reverse proxy (ters vekil sunucu), istemcilerden gelen istekleri karşılayıp arka plandaki bir ya da birden fazla uygulama sunucusuna ileten...
VPS
VPS (Virtual Private Server), tek bir fiziksel sunucunun sanallaştırma yazılımıyla bölünmesiyle oluşturulan, kendi işletim sistemi, root yet...

← Tüm terimler