Docker, uygulamalarınızı izole konteynerler içinde çalıştırmanıza olanak sağlayan bir platformdur. Geleneksel sanal makinelere (VM) göre çok daha hafif ve hızlıdır. Bu rehberde Docker'ın temellerini, VDS sunucunuzda nasıl kullanacağınızı ve web hosting projelerinize nasıl entegre edeceğinizi öğreneceksiniz.
Docker vs Sanal Makine (VM)
| Özellik | Docker Konteyner | Sanal Makine (VM) |
|---|---|---|
| Başlatma süresi | Saniyeler | Dakikalar |
| Kaynak kullanımı | Düşük (paylaşımlı kernel) | Yüksek (tam OS) |
| Disk boyutu | MB düzeyinde | GB düzeyinde |
| İzolasyon | Process düzeyinde | Tam donanım izolasyonu |
| Taşınabilirlik | Çok yüksek | Düşük |
| Ölçeklendirme | Kolay (Docker Compose, Swarm) | Karmaşık |
Docker Kurulumu (Ubuntu/Debian)
SSH ile sunucunuza bağlanıp aşağıdaki komutları çalıştırın:
# Sistem güncellemesi
sudo apt update && sudo apt upgrade -y
# Docker bağımlılıklarını kurun
sudo apt install -y ca-certificates curl gnupg
# Docker GPG anahtarını ekleyin
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Docker repository'yi ekleyin
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list
# Docker'ı kurun
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# Docker'ın çalıştığını doğrulayın
sudo docker run hello-worldTemel Docker Komutları
| Komut | Açıklama |
|---|---|
docker ps | Çalışan konteynerleri listele |
docker ps -a | Tüm konteynerleri listele |
docker images | İndirilen image'ları listele |
docker pull nginx | Nginx image'ını indir |
docker run -d -p 80:80 nginx | Nginx'i arka planda çalıştır |
docker stop <id> | Konteyneri durdur |
docker logs <id> | Konteyner loglarını göster |
docker exec -it <id> bash | Konteynere terminal aç |
Docker Compose ile Çoklu Servis Yönetimi
Docker Compose, birden fazla konteyneri tek bir YAML dosyası ile yönetmenizi sağlar. Örnek: WordPress + MySQL + Redis
# docker-compose.yml
version: '3.8'
services:
wordpress:
image: wordpress:latest
ports:
- "80:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: guvenli_sifre_123
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
depends_on:
- db
- redis
db:
image: mysql:8.0
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: guvenli_sifre_123
MYSQL_ROOT_PASSWORD: root_sifre_456
volumes:
- db_data:/var/lib/mysql
redis:
image: redis:alpine
volumes:
- redis_data:/data
volumes:
wp_data:
db_data:
redis_data:# Servisleri başlatın
docker compose up -d
# Durumu kontrol edin
docker compose ps
# Logları izleyin
docker compose logs -f
# Servisleri durdurun
docker compose downDockerfile ile Özel Image Oluşturma
Kendi uygulamanız için özel Docker image'ı oluşturun:
# Node.js uygulaması için Dockerfile
FROM node:20-alpine
WORKDIR /app
# Bağımlılıkları önce kopyala (cache optimizasyonu)
COPY package*.json ./
RUN npm ci --only=production
# Uygulama kodunu kopyala
COPY . .
# Portu expose et
EXPOSE 3000
# Uygulamayı başlat
CMD ["node", "server.js"]# Image'ı derleyin
docker build -t benim-uygulamam:v1 .
# Image'ı çalıştırın
docker run -d -p 3000:3000 benim-uygulamam:v1Docker Güvenlik İpuçları
- Root kullanmayın: Dockerfile'da
USER nodegibi non-root kullanıcı tanımlayın - Alpine image tercih edin: Daha küçük boyut = daha az saldırı yüzeyi
- Image'ları güncel tutun:
docker pullile düzenli güncelleyin - Gizli bilgileri environment'ta tutun: Docker secrets veya .env dosyası kullanın
- Firewall yapılandırın: Docker portlarını sadece gerekli IP'lere açın
Hosting Projelerinde Docker Kullanımı
Reverse Proxy ile Çoklu Site
Nginx reverse proxy veya Traefik ile tek sunucuda birden fazla web sitesi barındırabilirsiniz:
- Traefik: Otomatik SSL (Let's Encrypt), otomatik service discovery
- Nginx Proxy Manager: GUI ile kolay reverse proxy yönetimi
Docker için Minimum Sunucu Gereksinimleri
| Kullanım | CPU | RAM | Disk |
|---|---|---|---|
| Tek site (WordPress) | 2 vCPU | 2 GB | 30 GB SSD |
| 2-5 site | 4 vCPU | 4-6 GB | 50 GB SSD |
| Mikroservis mimarisi | 6+ vCPU | 8+ GB | 100+ GB SSD |
Hostopya'nın VDS paketleri Docker için tam root erişim ve KVM sanallaştırma ile ideal altyapı sunar.
Sonuç
Docker, modern web geliştirme ve hosting yönetiminde vazgeçilmez bir araçtır. Sanal sunucu veya dedicated sunucu üzerinde Docker kullanarak uygulamalarınızı izole, taşınabilir ve ölçeklenebilir hale getirebilirsiniz.
İlgili Hizmetler
İlgili Yazılar
Kubernetes Nedir? Başlangıç Rehberi (2026)
Kubernetes konteyner orkestrasyon platformu: Pod, Service, Deployment kavramları, minikube kurulumu ve HPA ile otomatik ölçekleme.
Rancher ile Kubernetes Cluster Yönetimi Rehberi (2026)
Rancher kurulumu, K3s ile hafif Kubernetes, multi-cluster yönetimi, RBAC ve monitoring. Rancher vs OpenShift karşılaştırması.

