Docker, uygulamanızı bağımlılıklarıyla birlikte paketler; sunucuya kurduğunuz şey artık "Node 20 + PM2 + Nginx" değil, tek bir imajdır. Bu rehberde 2 vCPU / 4 GB bir VPS üzerinde uçtan uca kurulumu yapıyoruz.
Neden Docker?
- Geliştirme ve production ortamı birebir aynı.
- Güncelleme = yeni imaj, geri alma = eski imaj.
- Aynı sunucuda birden fazla uygulama izole çalışır.
- Yedekleme ve taşıma tek dizine indirgenir.
Kurulum
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
docker --version && docker compose versionCompose ile çoklu servis
services:
app:
image: ghcr.io/example/app:1.4.2
restart: unless-stopped
env_file: .env
expose: ["3000"]
depends_on: [db]
db:
image: postgres:16-alpine
restart: unless-stopped
volumes: ["pgdata:/var/lib/postgresql/data"]
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
caddy:
image: caddy:2-alpine
restart: unless-stopped
ports: ["80:80", "443:443"]
volumes: ["./Caddyfile:/etc/caddy/Caddyfile", "caddy_data:/data"]
volumes:
pgdata:
caddy_data:İmaj etiketleri
Reverse proxy ve otomatik SSL
Caddy, alan adınız için Let's Encrypt sertifikasını otomatik alır ve yeniler. Tek yapmanız gereken A kaydını sunucuya yönlendirmek.
app.example.com {
encode zstd gzip
reverse_proxy app:3000
}| Servis | Port | Erişim |
|---|---|---|
| caddy | 80 / 443 | İnternet |
| app | 3000 | Yalnızca docker ağı |
| db | 5432 | Yalnızca docker ağı |
Güncelleme ve geri alma
Yeni sürüm için compose dosyasındaki etiketi değiştirip docker compose up -d çalıştırın; sorun olursa eski etikete dönüp aynı komutu tekrarlayın. Veritabanı migrasyonlarını geri alınabilir yazmayı unutmayın.
- UFW ile yalnızca 22, 80, 443 açık
- Docker log rotasyonu (max-size) tanımlı
- pgdata volume'u gece yedekleniyor
Docker için hazır VPS
Ubuntu 24.04 + Docker önceden kurulu imajlarla dakikalar içinde başlayın.
Bu içerik yararlı oldu mu?
Yazar
Sistem Ekibi
Altyapı & DevOps
Veri merkezi operasyonları, network ve otomasyon konularında derinlemesine yazılar.
- Network
- DevOps
- Cloud
Yorumlar
Sorularınızı ve deneyimlerinizi paylaşın; ekibimiz yanıtlıyor.
Yorumlar yakında