VPS'te Docker ile Başlarken
ApexVPS ekibi tarafından yazıldı • Son güncelleme: Temmuz 2026 • 8 dk okuma
VPS'te Docker çalıştırmak, boş bir Ubuntu sisteminden dakikalar içinde çalışan bir web uygulamasına, veritabanına veya kendi kendine barındırılan hizmete geçmenin en hızlı yoludur. Sistem paketleri ve çakışan bağımlılıklarla uğraşmak yerine, önceden oluşturulmuş bir imajı çekip bir konteyner başlatırsınız. Bu başlangıç rehberi, Ubuntu veya Debian üzerinde Docker ve Docker Compose kurulumunu, ihtiyacınız olan temel kavramları, ilk konteynerinizi başlatmayı, verileri hacimlerle (volumes) kalıcı hale getirmeyi ve yanmamanız için birkaç güvenlik temelini adım adım anlatır.
Neden VPS'te Docker çalıştırmalısınız?
Sanal özel sunucu, size tam kök erişimi ve özel kaynaklar sunar; konteynerlerin tam olarak istediği de budur. Docker kurulu olduğunda, birbirine karışmadan yan yana birçok izole hizmet çalıştırabilirsiniz. Her konteyner kendi kütüphaneleriyle gelir, böylece bir Node uygulaması, bir Postgres veritabanı ve bir ters proxy tek bir makinede temiz bir şekilde bir arada bulunabilir. Amacınız bir VPS'te kendi kendine barındırılan uygulamalar ise — kişisel bulut, wiki veya medya sunucusu düşünün — Docker her hizmeti düzenli ve tekrarlanabilir tutar.
Konteynerler ayrıca taşınabilirdir. Laptopunuzda çalışan aynı Compose dosyası sunucuda da çalışır ve bu da klasik "bende çalışıyordu" sorununu ortadan kaldırır. Bir hata sonrası hizmeti yeniden oluşturmak, öğleden sonra paketleri yeniden kurmak yerine saniyeler sürer.
Temel kavramlar sade bir dille
Komut satırına dokunmadan önce dört yapı taşını bilmek faydalı olacaktır:
- İmaj (Image) — bir uygulamayı ve çalıştırmak için gereken her şeyi içeren salt okunur bir şablon. İmajları Docker Hub gibi bir kayıt defterinden indirirsiniz. Bunu bir anlık görüntü veya bir sınıf olarak düşünebilirsiniz.
- Konteyner — bir imajın çalışan örneği. Konteynerleri serbestçe başlatabilir, durdurabilir ve silebilirsiniz. Aynı imajdan, bir sınıftan oluşturulan nesneler gibi birçok konteyner çalıştırılabilir.
- Volume (Birim) — konteynerin yazılabilir katmanının dışında kalan kalıcı depolama. Volume'lar, bir konteyner değiştirildiğinde veritabanlarını ve yüklenen dosyaları güvende tutmanın yoludur.
- Ağ (Network) — konteynerlerin birbirleriyle isimleriyle iletişim kurabildiği sanal bir ağ. Docker, her Compose projesi için otomatik bir ağ oluşturur, böylece uygulamanız veritabanına dostane bir ana makine adıyla ulaşabilir.
Adım 1: Docker'ı Ubuntu veya Debian'a Kurun
Docker Engine'i kurmanın en basit ve resmi olarak desteklenen yolu kolaylık betiğidir. Sunucunuza SSH ile bağlanın ve şunu çalıştırın:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Bu, Docker Engine'i Compose eklentisiyle birlikte kurar. Bittiğinde sürümleri doğrulayın:
docker --version
docker compose version
Varsayılan olarak Docker sudo gerektirir. Normal kullanıcınız olarak çalıştırmak için kendinizi docker grubuna ekleyin, ardından değişikliğin etkili olması için oturumu kapatıp yeniden açın:
sudo usermod -aG docker $USER
Docker ayrıca çoğu sistemde açılışta başlar. Gerekirse manuel olarak etkinleştirmeniz gerekirse:
sudo systemctl enable --now docker
Paket deposu yöntemini mi tercih ediyorsunuz veya dağıtımınız için tüm ayrıntıları mı istiyorsunuz? Resmi Docker kurulum belgeleri tüm seçenekleri kapsar. Yukarıdaki kolaylık betiği, yeni bir VPS için idealdir.
Adım 2: İlk konteynerinizi çalıştırın
Kurulumu klasik hello-world imajıyla test edin:
docker run hello-world
Docker imajı çeker, bir kez çalıştırır ve bir onay mesajı yazdırır. Şimdi gerçekten görebileceğiniz bir şey çalıştıralım. Bu komut, arka planda bir Nginx web sunucusu başlatır ve ana makinedeki 8080 bağlantı noktasını konteynerdeki 80 bağlantı noktasına eşler:
docker run -d -p 8080:80 --name web nginx
Tarayıcıda http://your-server-ip:8080 adresini açın ve Nginx karşılama sayfasını görmelisiniz. Bilinmeye değer birkaç bayrak:
-dkonteyneri arka planda, ayrık olarak çalıştırır.-p 8080:80, bir bağlantı noktasınıhost:containerolarak yayınlar.--name webkonteynere akılda kalıcı bir isim verir.
Ne çalıştığını kontrol edin, ardından işiniz bittiğinde konteyneri durdurun ve silin:
docker ps
docker stop web
docker rm web
Bir avuç komut, günlük işlerin çoğunu karşılar. docker images çektiğiniz görüntüleri listeler, docker logs web sorun giderme için konteynerin çıktısını gösterir ve docker exec -it web bash çalışan bir konteynerin içinde bir kabuk açar, böylece etrafı keşfedebilirsiniz. Bu beş veya altı komutu öğrenmek, küçük bir sunucuyu güvenle yönetmek için yeterlidir; gerisine ihtiyaç duydukça bakabilirsiniz.
Adım 3: Çok konteynerli uygulamalar için Docker Compose kullanın
Uzun docker run komutları yazmak çabuk sıkıcı olur. Docker Compose, tüm yığınınızı tek bir dosyada tanımlamanızı ve tek komutla başlatmanızı sağlar. compose.yaml adında bir dosya oluşturun:
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- web-data:/usr/share/nginx/html
restart: unless-stopped
volumes:
web-data:
Aynı dizinden her şeyi arka planda başlatın:
docker compose up -d
Compose, ağı, adlandırılmış birimi ve kapsayıcıyı sizin için oluşturur. Kullanışlı yardımcılar:
docker compose ps
docker compose logs -f
docker compose down
restart: unless-stopped politikası, hizmetin yeniden başlatma veya çökme sonrasında otomatik olarak geri gelmesini sağlar — 7/24 izlemediğiniz bir sunucu için kullanışlıdır.
Adım 4: Verileri birimlerle kalıcı hale getirin
Bu, yeni başlayanların en sık yanlış yaptığı kısımdır. Bir kapsayıcının kendi dosya sistemine yazılan her şey, o kapsayıcı kaldırıldığında veya yeniden oluşturulduğunda kaybolur. Verileri korumak için birime koyun. İki yaygın yaklaşım vardır:
- Adlandırılmış birimler — Docker tarafından yönetilir, veritabanları için idealdir. Yukarıdaki Compose örneği
web-dataadlı bir birim kullanır. - Bağlama noktaları — ana makinedeki bir klasörü doğrudan kapsayıcının içine eşler, örneğin
./config:/etc/app. Elle düzenlemek istediğiniz yapılandırma dosyaları için harikadır.
Komut satırından birimleri inceleyin ve yönetin:
docker volume ls
docker volume inspect web-data
Önemli yollarınız bir birimi gösterdiği sürece, tek bir bayt kaybetmeden kapsayıcıları silebilir ve yeniden oluşturabilirsiniz. Birim dizinini sunucu yedeklerinizin bir parçası olarak yedekleyin.
Adım 5: Görüntüleri ve kapsayıcıları güncelleyin
Kapsayıcı görüntüleri, diğer yazılımlar gibi güvenlik ve özellik güncellemeleri alır. Bir Compose yığınını güncellemek iki adımlı bir rutindir: daha yeni görüntüleri çekin, ardından kapsayıcıları yeniden oluşturun.
docker compose pull
docker compose up -d
Verileriniz birimlerde olduğu için yeniden oluşturma güvenlidir. Zamanla kullanılmayan görüntüler birikir ve disk alanı kaplar. Ara sıra temizleyin:
docker image prune
Öngörülebilir, tekrarlanabilir güncellemeler istiyorsanız, sürprizler yerine belirli sürüm etiketlerine sabitleyin (örneğin postgres:16 yerine latest).
Yeni başlayanlar için temel Docker güvenliği
Kapsayıcılar kullanışlıdır, ancak sihirli bir güvenlik sınırı değildir. Birkaç alışkanlık sizi beladan uzak tutar:
- Yalnızca güvendiğiniz görüntüleri çalıştırın. Resmi görüntüleri veya bilinen yayıncıları tercih edin. Bir eğitim öyle dedi diye rastgele bir görüntüyü root olarak çalıştırmayın — güvenilmeyen bir görüntü sunucunuzda kod çalıştırır.
- Kapsayıcıların içinde root olmaktan kaçının. Birçok resmi görüntü root olmayan bir kullanıcıyı destekler veya bir Dockerfile'daki
USERtalimatıyla bir tane ayarlayabilirsiniz. Sınırlı bir kullanıcı olarak çalışmak, bir uygulama tehlikeye girerse patlama yarıçapını azaltır. - Yalnızca ihtiyacınız olan bağlantı noktalarını yayınlayın. Her
-pbayrağı internete bir kapı açar. Veritabanlarını dahili Docker ağında tutun ve yalnızca web ön ucunuzu açığa çıkarın. - Ana makineyi güncel tutun. Docker güvenliği güvenli bir sunucuyla başlar.
sudo apt update && sudo apt upgradekomutunu düzenli olarak çalıştırın ve SSH'yi kilitleyin.
Herhangi bir şeyi herkese açık hale getirmeden önce, VPS'nizi ilk 10 dakikada nasıl güvence altına alacağınızı anlatan yardımcı kontrol listemizi inceleyin — SSH anahtarları, bir güvenlik duvarı ve bir Docker ana bilgisayarıyla mükemmel uyum sağlayan otomatik güncellemeleri kapsar.
Docker için hazır bir VPS seçmek
Docker mütevazı donanımlarda çalışır, ancak birkaç kapsayıcıyı üst üste yığdığınızda özel kaynaklar gerçek bir fark yaratır. Paylaşımlı, aşırı satılan barındırma, gürültülü bir komşunun veritabanınızı en kötü anda boğabileceği anlamına gelir. ApexVPS size gerçekten özel vCPU, NVMe SSD depolama ve tam kök erişimi verir, böylece kapsayıcılarınız ödediğiniz performansı alır. Her plan Ubuntu, Debian ve diğer popüler dağıtımları destekler ve kayıt sırasında SSH anahtarınızı ekleyebilirsiniz.
Ödeme yalnızca OxaPay üzerinden kripto ile yapılır; Bitcoin, Ethereum, USDT ve 30'dan fazla kripto para kabul edilir — kredi kartı, banka hesabı veya KYC gerekmez. Erişim bilgilerini almak için bir e-posta sağlarsınız, hepsi bu. Konteyner iş yükünüze uygun bir plan bulmak için ApexVPS fiyatlandırma sayfasındaki özellikleri ve bölgeleri karşılaştırın.
Sıkça sorulan sorular
Bir VPS'te Docker çalıştırmak için çok fazla RAM'e ihtiyacım var mı?
Hayır. Docker'ın kendisi hafiftir ve çok az ek yük ekler. Bir veya iki konteyner 2 GB RAM ile rahatça çalışırken, 4 GB veya daha fazlası veritabanları ve aynı anda birkaç hizmet için ek alan sağlar.
docker-compose mi yoksa docker compose mi?
Modern kurulumlarda Compose bir eklenti olarak gelir, bu nedenle komut docker compose (boşluklu) şeklindedir. Eski bağımsız docker-compose ikili dosyası hâlâ çalışır ancak kullanımdan kaldırılıyor — yeni kurulumda eklenti sürümünü kullanın.
Bir konteyner silindiğinde verilerim nerede saklanır?
Konteynerin içine yazılan her şey silindiğinde kaybolur. Önemli verileri, konteyner yeniden oluşturulduğunda hayatta kalması için adlandırılmış bir birime veya bağlama bağlama noktasına (bind mount) saklayın. Veritabanları ve yüklemeler böylece güvende kalır.
Docker'a hazır bir VPS için kripto para ile ödeme yapabilir miyim?
Evet. ApexVPS ödemesi yalnızca OxaPay üzerinden kripto ile yapılır ve Bitcoin, Ethereum, USDT ve 30'dan fazla coin kabul eder. Kayıt için yalnızca bir e-posta gerekir; kredi kartı veya kimlik doğrulama yoktur.