VPS'inizde Docker çalıştırma

VPS üzerinde Docker kurulumu, ilk konteynerin çalıştırılması, volum yönetimi ve birden fazla servisi aynı anda çalıştırmak için Docker Compose kullanımı adım adım anlatılmaktadır.

6 dk Güncellendi 26 Aug 2026

Docker'ı VPS Üzerinde Kullanmak Neden Akıllıca Bir Seçim?

Bir sanal sunucunuz (VPS) varsa ve uygulamalarınızı hızlı, izole ve taşınabilir bir şekilde çalıştırmak istiyorsanız, VPS üzerinde Docker en iyi seçenektir. Docker, her uygulamayı tüm bağımlılıklarıyla birlikte hafif bir konteyner içinde paketlemenize olanak tanır. Bu, artık kitaplık sürümlerinin çakışması, ortam değişkenlerinin ayarları veya servisler arasındaki uyumsuzluklar konusunda endişelenmeyeceğiniz anlamına gelir. Bu makalede, Docker'ı VPS üzerinde kurulumdan Docker Compose ile çok servisli projeleri çalıştırmaya kadar tüm yolu ele alıyoruz.

Ön Koşullar ve Sunucu Hazırlığı

Başlamadan önce, VPS'inizin şu özelliklere sahip olduğundan emin olun:

  • Ubuntu 22.04 veya 24.04 işletim sistemi (bu makaledeki komutlar bu sürümler için test edilmiştir)
  • En az 1 GB RAM ve 10 GB disk alanı (hafif projeler için)
  • sudo yetkisine sahip bir kullanıcıyla SSH erişimi

Önce sunucuya giriş yapın ve sistemi güncelleyin:

sudo apt update && sudo apt upgrade -y

Docker Ön Koşullarının Kurulumu

apt'nin HTTPS depolarını kullanabilmesi için birkaç yardımcı paket gereklidir:

sudo apt install -y ca-certificates curl gnupg lsb-release

VPS Üzerinde Docker Kurulumu

VPS üzerinde Docker kurmak için iki ana yöntem vardır: resmi betiği kullanmak veya Docker deposunu eklemek. Sonraki güncellemeler daha kolay olduğu için resmi depo yöntemini öneriyoruz.

Resmi Docker Deposunun Eklenmesi

Docker GPG anahtarını ekleyin:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Ardından depoyu kaynak listesine ekleyin:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker Motoru ve Eklentilerin Kurulumu

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Kurulumdan sonra Docker servisini etkinleştirin ve başlatın:

sudo systemctl enable docker
sudo systemctl start docker

Kurulumun Kontrolü ve Kullanıcının docker Grubuna Eklenmesi

Docker komutlarını sudo olmadan kullanmak için kullanıcınızı docker grubuna ekleyin:

sudo usermod -aG docker $USER

Değişikliğin uygulanması için sunucudan çıkış yapıp tekrar giriş yapın. Ardından Docker sürümünü kontrol edin:

docker --version

Çıktı Docker version 27.x.x gibi bir şey olmalıdır.

Yaygın Hata: docker grubuna eklendikten sonra hâlâ permission denied hatası alıyorsanız, mutlaka tamamen çıkış yapıp tekrar giriş yapın. Bazen SSH servisini yeniden başlatmak da gerekebilir.

VPS Üzerinde İlk Konteynerin Çalıştırılması

Docker kurulduğuna göre, ilk konteyneri çalıştıralım. En basit test, hello-world imajını çalıştırmaktır:

docker run hello-world

Başarı mesajını görürseniz, Docker VPS'inizde doğru şekilde çalışıyor demektir. Şimdi daha gerçekçi bir örnek: bir Nginx web sunucusu çalıştırmak:

docker run -d -p 8080:80 --name my-nginx nginx

Bu komut:

  • -d arka planda çalıştırma anlamına gelir
  • -p 8080:80 konteynerin 80. portunu sunucunun 8080. portuna eşler
  • --name konteyner için bir ad belirler

Şimdi tarayıcınızda http://IP_VPS:8080 adresini açın. Nginx'in varsayılan sayfasını görmelisiniz.

Konteyner Yönetimi

Konteynerleri yönetmek için birkaç yaygın komut:

docker ps                    # Çalışan konteynerleri listeler
docker ps -a                 # Tüm konteynerleri listeler
docker stop my-nginx         # Konteyneri durdurur
docker start my-nginx        # Konteyneri yeniden başlatır
docker rm my-nginx           # Konteyneri siler
docker logs my-nginx         # Günlükleri görüntüler

Docker'da Volume'ler ile Veri Yönetimi

Konteynerler doğası gereği durumsuzdur; yani konteyner dosya sistemindeki herhangi bir değişiklik, konteyner silindiğinde kaybolur. Kalıcı verileri (veritabanı veya yüklenen dosyalar gibi) saklamak için volume kullanmalısınız.

Volume Oluşturma ve Kullanma

Adlandırılmış bir volume oluşturun:

docker volume create my-data

Şimdi bu volume ile bir konteyner çalıştırın:

docker run -d -p 3306:3306 -v my-data:/var/lib/mysql --name mysql-db -e MYSQL_ROOT_PASSWORD=secret mysql:8

Bu örnekte, MySQL verileri my-data volume'ünde saklanır ve konteyneri silseniz bile veriler kalıcı olur.

Dosyalara Doğrudan Erişim için Bind Mount

Bazen konteynerin sunucudaki belirli bir klasöre doğrudan erişmesini istersiniz. Bu, bind mount ile yapılır:

docker run -d -p 8080:80 -v /home/user/html:/usr/share/nginx/html --name web nginx

Artık /home/user/html içine koyduğunuz her dosya web sunucusunda anında görülebilir. Bu yöntem yerel geliştirme için harikadır.

Yaygın Hata: Bind mount yolunun önceden var olduğundan emin olun. Hedef klasör yoksa, Docker onu root yetkisiyle oluşturur ve izin hatasıyla karşılaşabilirsiniz.

Docker Compose ile Birden Fazla Servis Çalıştırma

Gerçek projeler için genellikle aynı anda birden fazla servise ihtiyaç duyarsınız; örneğin bir web uygulaması, veritabanı ve önbellek. Docker Compose bunu basitleştirir. Bir docker-compose.yml dosyasıyla tüm servisleri tanımlayabilir ve tek bir komutla çalıştırabilirsiniz.

docker-compose.yml Dosyasının Oluşturulması

Proje için bir klasör oluşturun ve compose dosyasını oluşturun:

mkdir ~/myapp && cd ~/myapp
nano docker-compose.yml

Aşağıdaki içeriği girin — Redis ile birlikte basit bir Node.js uygulaması:

version: '3.8'

services:
  app:
    image: node:18-alpine
    container_name: myapp
    working_dir: /app
    volumes:
      - ./app:/app
    ports:
      - "3000:3000"
    command: sh -c "npm install && npm start"
    environment:
      - REDIS_HOST=redis
    depends_on:
      - redis

  redis:
    image: redis:7-alpine
    container_name: myapp-redis
    volumes:
      - redis-data:/data

volumes:
  redis-data:

Projeyi Compose ile Çalıştırma

Şimdi app klasörünü oluşturun ve içine basit bir package.json ve index.js dosyası koyun. Ardından çalıştırın:

docker compose up -d

Bu komut her iki servisi de indirir ve çalıştırır. Durumu görüntülemek için:

docker compose ps

Günlükleri görüntülemek için:

docker compose logs -f

Sık Kullanılan Compose Komutları

docker compose down          # Konteynerleri durdurur ve siler
docker compose down -v       # Konteynerleri ve volume'leri siler
docker compose restart       # Tüm servisleri yeniden başlatır
docker compose build         # İmajları yeniden oluşturur

Yaygın Hata: Compose dosyasını değiştirdiyseniz, değişikliklerin uygulanması için mutlaka docker compose up -d komutunu tekrar kullanın. restart komutu yalnızca konteynerleri yeniden başlatır ve yapılandırma değişikliklerini uygulamaz.

VPS Üzerinde Docker Optimizasyonu ve Güvenliği

VPS üzerinde Docker'ı profesyonelce kullanmak için birkaç güvenlik noktasına dikkat edin:

  • İmajları her zaman resmi ve güvenilir kaynaklardan alın
  • İmajlardaki güvenlik açıklarını kontrol etmek için docker scan kullanın
  • Hassas ortam değişkenlerini (veritabanı şifresi gibi) .env dosyasına koyun ve git deposundan çıkarın
  • Her konteynerin kaynaklarını sınırlamak için --memory ve --cpus bayraklarını kullanın
docker run -d --memory="512m" --cpus="0.5" --name limited nginx

Özet

VPS üzerinde Docker kurmak zor bir iş değildir, ancak ayrıntılara dikkat etmek gerekir. Bu makalede Docker'ı nasıl kuracağınızı, ilk konteyneri nasıl çalıştıracağınızı, verileri volume'lerle nasıl yöneteceğinizi ve Docker Compose ile birden fazla servisi aynı anda nasıl çalıştıracağınızı öğrendiniz. Bu beceriler, modern uygulamaları bulut altyapılarına dağıtmak için temeldir. Docker çalıştırmak için istikrarlı ve yüksek hızlı bir VPS arıyorsanız, ServerNet sanal sunucu hizmetleri iyi bir seçim olabilir. Şimdi harekete geçme ve ilk konteynerinizi çalıştırma zamanı!

Bu sayfa yardımcı oldu mu?