Blog'a Dön

Docker Nedir? VDS Sunucuda Docker Kullanım Rehberi (2026)

Docker konteyner teknolojisi nedir? Docker Compose ile çoklu servis yönetimi, Dockerfile oluşturma ve hosting projelerinde Docker kullanımı.

dockerkonteynerdocker composedevopssanal sunucu

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)

ÖzellikDocker KonteynerSanal Makine (VM)
Başlatma süresiSaniyelerDakikalar
Kaynak kullanımıDüşük (paylaşımlı kernel)Yüksek (tam OS)
Disk boyutuMB düzeyindeGB düzeyinde
İzolasyonProcess düzeyindeTam donanım izolasyonu
TaşınabilirlikÇok yüksekDüşük
ÖlçeklendirmeKolay (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-world

Temel Docker Komutları

KomutAçıklama
docker psÇalışan konteynerleri listele
docker ps -aTüm konteynerleri listele
docker imagesİndirilen image'ları listele
docker pull nginxNginx image'ını indir
docker run -d -p 80:80 nginxNginx'i arka planda çalıştır
docker stop <id>Konteyneri durdur
docker logs <id>Konteyner loglarını göster
docker exec -it <id> bashKonteynere 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 down

Dockerfile 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:v1

Docker Güvenlik İpuçları

  • Root kullanmayın: Dockerfile'da USER node gibi 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 pull ile 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ımCPURAMDisk
Tek site (WordPress)2 vCPU2 GB30 GB SSD
2-5 site4 vCPU4-6 GB50 GB SSD
Mikroservis mimarisi6+ vCPU8+ GB100+ 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.