Docker Compose nedir?
Docker Compose, birden fazla konteynerden oluşan bir uygulamanın hizmetlerini, ağlarını ve disk birimlerini tek bir YAML dosyasında tanımlayan bir araçtır. Tek komutla tüm bileşenler birlikte oluşturulur, başlatılır ve durdurulur. Örneğin bir web uygulaması, veritabanı ve önbellek tek dosyada tarif edilebilir.
Dosya, kurulumu belgeler niteliğinde olduğundan farklı makinelerde aynı ortamın yeniden kurulmasını kolaylaştırır. Tek sunucuda çalışan küçük ve orta ölçekli uygulamalar için yaygın bir yöntemdir.
Nasıl çalışır?
compose.yaml ya da docker-compose.yml dosyasında her hizmet için imaj, ortam değişkenleri, portlar, bağlanan birimler ve bağımlılıklar yazılır. Compose, hizmetler için ortak bir ağ oluşturur ve hizmetler birbirine adlarıyla ulaşır. docker compose up -d komutu hizmetleri arka planda başlatır, down ise durdurup kaldırır.
Kalıcı veriler adlandırılmış birimlerde ya da bağlanan dizinlerde tutulur; konteyner silinse bile veri korunur. Gizli değerler için ortam dosyası veya gizli anahtar (secrets) mekanizması kullanılabilir.
Sunucu ve hosting ortamında
Bir VPS üzerinde tipik kullanım, Nginx ya da bir ters vekil ile uygulama ve veritabanı konteynerlerinin Compose ile ayağa kaldırılmasıdır. Dikkat edilecek en önemli konu portlardır: ports ile yayımlanan portlar, güvenlik duvarı kurallarını atlayarak ana makineden erişilebilir olabilir. Veritabanı gibi hizmetler yalnızca Compose ağı içinde kalmalıdır.