Makale Başlıkları
Bir veritabanını doğrudan sunucuya kurmak yerine Docker konteyneri olarak çalıştırmak; hızlı, temiz ve taşınabilir bir yöntemdir. Tek bir komutla PostgreSQL veya MySQL ayağa kalkar, sistemde kalıcı iz bırakmaz ve istediğiniz sürümü kolayca deneyebilirsiniz. Bu rehberde resmi imajlarla PostgreSQL ve MySQL konteynerlerinin nasıl kurulacağını ve verinin nasıl kalıcı tutulacağını anlatıyoruz.
Veritabanı konteynerlerinizi çalıştırmak için Docker kurulu bir VPS/sunucu yeterlidir.
Neden Docker ile Veritabanı?
Docker ile veritabanı çalıştırmanın avantajları net: sistemi kirletmeden farklı sürümleri deneyebilir, bir projeden diğerine kolayca geçebilir ve aynı yapıyı başka sunucuda birebir tekrar oluşturabilirsiniz. Geliştirme ortamları, test ve mikroservis mimarileri için yaygın bir tercihtir. Tek kritik nokta verinin kalıcılığıdır; bunu volume ile çözeriz.
PostgreSQL Konteyneri Kurulumu
Resmi postgres imajıyla, parola ve kalıcı volume vererek:
docker run --name some-postgres -e POSTGRES_PASSWORD=gizli_parola -p 5432:5432 -v some-postgres:/var/lib/postgresql/data -d postgres
POSTGRES_PASSWORD zorunludur; bu olmadan konteyner başlamaz. Veri /var/lib/postgresql/data yolunda saklanır ve volume sayesinde konteyner silinse bile korunur.
MySQL Konteyneri Kurulumu
Resmi mysql imajıyla benzer şekilde:
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=gizli_parola -p 3306:3306 -v some-mysql:/var/lib/mysql -d mysql:latest
Burada MYSQL_ROOT_PASSWORD zorunludur ve MySQL verisi /var/lib/mysql yolunda tutulur.
Veri Kalıcılığı ve Güvenlik
İki kurulumda da kritik nokta -v ile bağlanan volume’dür: bu olmadan konteyner silindiğinde tüm veritabanı kaybolur. Güvenlik açısından ise -p 5432:5432 / -p 3306:3306 portları veritabanını dışarı açar; üretimde buna gerek yoksa portu hiç yayınlamayın veya yalnızca yerele bağlayın: -p 127.0.0.1:5432:5432. Parolaları da güçlü ve gizli tutun.
Dikkat Edilmesi Gerekenler
- Parola env değişkenleri (
POSTGRES_PASSWORD/MYSQL_ROOT_PASSWORD) olmadan konteyner başlamaz; gerçek güçlü parola kullanın. - Volume mount edilmezse veri kalıcı olmaz; her zaman
-vile bir volume bağlayın. - Veritabanı portunu gereksiz yere internete açmayın; mümkünse yalnızca uygulama konteynerinin eriştiği iç ağa bağlayın.
- Compose ile bu veritabanlarını uygulama servisinizle aynı dosyada tanımlamak daha düzenli bir yapı sağlar.
Sıkça Sorulan Sorular
Konteyner silinince verim gider mi?
Volume kullandıysanız gitmez; volume olmadan çalıştırırsanız veri kaybolur.
Belirli bir sürümü çalıştırabilir miyim?
Evet, postgres:18 veya mysql:8.4 gibi etiketlerle istediğiniz sürümü seçebilirsiniz.
Üretimde Docker’da veritabanı olur mu?
Olur, ancak yedekleme, kalıcı volume ve kaynak ayarlarına özen göstermek gerekir.
Dışarıdan nasıl bağlanırım?
Port yayınlanmışsa istemciyle SUNUCU_IP:5432/3306 üzerinden; güvenlik için erişimi kısıtlayın.
MariaDB de aynı şekilde mi?
Evet, resmi mariadb imajıyla aynı mantıkla çalıştırılır.
Veritabanı Konteynerleri İçin Sunucu
PostgreSQL/MySQL konteynerleriniz için NVMe SSD’li, ayrılmış kaynaklı VPS çözümleri.



