Docker, bir Linux VPS'inde uygulama dağıtma şeklini dönüştürdü. Ana sistemde her bağımlılığı manuel olarak kurmak yerine, yığınınızı tekrarlanabilir, sürümlenmiş ve izole konteynerlere kapsüllersiniz. Bir API, bir yönetim paneli veya bir staging ortamı başlatıyor olun, VPS üzerinde Docker esneklik ve tam kontrolü birleştirir — makineyi doğru boyutlandırmak ve bazı temel güvenlik kurallarına uymak koşuluyla.
Yerelde değil de bir VPS'te neden Docker?
Bir VPS size genel bir IP adresi, özel bir bant genişliği ve garantili bir çalışma süresi sunar — bunların üçü de yerel geliştirme makinenizde doğal olarak bulunmaz. Docker Compose, tüm yığınınızı (uygulama, veritabanı, önbellek, reverse proxy) tek bir YAML dosyasında tanımlamanıza ve tek bir komutla dağıtmanıza olanak tanır. Güncellemeler imajın yeniden oluşturulmasıyla, geri almalar ise önceki bir etikete dönülerek yapılır — zaman içinde birikmiş manuel bir kurulumdan çok daha tahmin edilebilir bir iş akışı.
Docker için VPS'inizi boyutlandırma
Her konteyner, düşük yükte bile sürekli olarak RAM ve CPU tüketir. Hizmetlerinizin ihtiyaçlarını toplayın ve Docker daemon'u ile ana sistemin kendisi için %20 ila %30 pay ekleyin.
| Yığın türü | vCPU | RAM | Depolama |
|---|---|---|---|
| Hafif yığın (API + PostgreSQL) | 2 | 4 GB | 40 GB NVMe |
| Orta yığın (uygulama + veritabanı + Redis + Nginx) | 4 | 8 GB | 80 GB NVMe |
| Çoklu hizmet / tam staging | 6 – 8 | 16 GB | 160 GB NVMe |
NVMe depolama, imaj çekme, çok aşamalı build'ler ve kalıcı volume'ları önemli ölçüde hızlandırır — her disk yazımının önemli olduğu konteynerleştirilmiş veritabanlarında özellikle dikkat çekici bir kazanç.
Docker Compose: aşırı karmaşıklık olmadan orkestrasyon
Docker Compose, tek bir VPS'te dağıtılan projelerin çoğu için yeterlidir. Hizmetlerinizi, iç ağlarınızı ve volume'larınızı bir compose.yaml dosyasında tanımlayın, ardından docker compose up -d komutuyla başlatın. Konteynerler birbirleriyle özel bir bridge ağı üzerinden iletişim kurar; yalnızca reverse proxy (Traefik, Nginx Proxy Manager veya Caddy) 80 ve 443 portlarını dışarıya açar. Bu mimari, saldırı yüzeyini önemli ölçüde azaltır ve SSL sertifikalarının otomatik yönetimini basitleştirir.
Volume'lar ve veri kalıcılığı
Kritik verileri asla yalnızca bir konteynerin yazılabilir katmanında saklamayın: veritabanları, kullanıcı yüklemeleri ve loglar için adlandırılmış volume'lar veya bind mount'lar kullanın. Bu, verilerinizin güncellemelere, yeniden başlatmalara ve imaj yeniden oluşturmalarına dayanmasını garanti ederken hedefe yönelik yedeklemeleri de kolaylaştırır.
Güvenlik: vazgeçilmez temeller
Bir VPS'te Docker çalıştırmak, hafife alınmaması gereken sistem yönetimi sorumlulukları getirir:
- Docker soketini (port 2375/2376) asla doğrudan İnternete açmayın, aksi halde ana sistemin tamamen ele geçirilmesi riskiyle karşı karşıya kalırsınız.
- Kullanılan Linux çekirdeğini, Docker motorunu ve temel imajları düzenli olarak güncelleyin.
- Yalnızca kesinlikle gerekli olan SSH, HTTP ve HTTPS portlarına izin vermek için bir güvenlik duvarı kullanın (ufw veya nftables).
- Uygulama imajı izin verdiğinde konteynerleri root olmayan bir kullanıcıyla çalıştırın.
- Herkese açık olarak sunulan hizmetlerinizi korumak için sağlayıcı tarafında Anti-DDoS korumasını etkinleştirin.
Pratik ipucu: üretime geçmeden önce, bağımlılıklarınızdaki bilinen açıkları tespit etmek için imajlarınızı Trivy veya Docker Scout gibi bir araçla tarayın. İyi oluşturulmuş bir konteyner, düzenli olarak yeniden oluşturulan minimal bir temel imaja (alpine veya distroless) dayanır.
Üretim için sağlam bir temel
HolyCloud gibi bir Avrupalı sağlayıcıda iyi yapılandırılmış bir Docker VPS, Compose'un esnekliği ve NVMe depolamanın performansıyla üretim uygulamalarınızı barındırmak için sağlam bir temel oluşturur. Bu yaklaşım, konteynerleştirilmiş bir WordPress dağıtımını veya ölçeklenebilir bir uygulama kümesini doğal olarak tamamlar. Hemen kullanıma hazır compose dosya örneklerini teknik kılavuzlarımızda bulun; Anti-DDoS korumamız ise sizin tarafınızda ek bir yapılandırma gerekmeden kaynağında etkin kalır.