Docker Compose up komutu nasıl kullanılır? (Servisleri başlatma)

Docker Compose Nedir?

Docker Compose, birden fazla Docker konteynerini yönetmeyi sağlayan bir araçtır. YAML dosyası kullanarak, çok sayıda hizmetin, ağın ve veri kapasitesinin yapılandırmasını tanımlamak mümkündür. Docker Compose, geliştiricilerin mikro hizmet mimarilerini kolayca oluşturmasına ve çalıştırmasına olanak tanır. Bu, uygulamaların farklı bileşenlerini (örneğin, web sunucuları, veritabanları ve ön bellek sistemleri) tek bir komut ile başlatmayı sağlar.

Docker Compose Dosyası Yapısı

Docker Compose yapılandırma dosyası, genellikle `docker-compose.yml` adıyla adlandırılır. Bu dosya, servislere, ağlara ve hacimlere dair bilgileri içerir. Aşağıda temel yapıların örnekleri sunulmaktadır:

“`yaml
version: ‘3.8’

services:
web:
image: nginx:latest
ports:
– “8080:80”

db:
image: postgres:latest
environment:
POSTGRES_DB: example_db
POSTGRES_USER: user
POSTGRES_PASSWORD: password
“`

Yukarıdaki YAML dosyasında `web` ve `db` olarak iki hizmet tanımlanmıştır. `web` servisi Nginx imajını kullanırken, `db` servisi PostgreSQL imajına dayanır. Her hizmetin hangi portları dinleyeceği, hangi çevresel değişkenlerle başlatılacağı gibi bilgiler bu yapılandırma ile sağlanır.

Docker Compose Up Komutu

Docker Compose içerisinde yer alan `up` komutu, tanımlanan tüm hizmetleri başlatmak için kullanılır. Kullanım şekli oldukça basittir:

“`
docker-compose up
“`

Bu komut, `docker-compose.yml` dosyasının bulunduğu dizinde çalıştırıldığında, dosyada tanımlı olan tüm hizmetleri başlatır. Komutun çalıştırılmasının ardından, Docker Compose gerekli imajları indirir (gerekliyse), konteynerleri oluşturur ve başlatır.

Arka Planda Çalıştırma

Docker Compose up komutu, varsayılan olarak hizmetlerin loglarını terminalde gösterir. Ancak, hizmetlerin arka planda çalıştırılması istendiğinde `-d` seçeneği kullanılmalıdır:

“`
docker-compose up -d
“`

Bu yöntemle, tüm hizmetler arka planda çalışmaya başlar ve konsolda log çıktısı gösterilmez. Arka planda çalışan hizmetlerin loglarına erişmek için `docker-compose logs` komutu kullanılabilir.

Belirli Hizmetleri Başlatma

Bazen tüm hizmetlerin başlatılması yerine yalnızca belirli hizmetlerin çalıştırılması gerekebilir. Bu durumda, komutun sonuna başlatılmak istenen hizmetin adı eklenebilir:

“`
docker-compose up web
“`

Yukarıdaki komut yalnızca `web` servisinin başlatılmasını sağlar. Birden fazla hizmeti aynı anda başlatmak için aşağıdaki gibi bir kullanım mümkündür:

“`
docker-compose up web db
“`

Hızlı Yeniden Başlatma

Docker Compose, hizmetlerin güncellenip yeniden başlatılması için ideal bir yöntem sunar. Bir hizmette değişiklik yapılması durumunda, aşağıdaki komut ile değiştirilmiş hizmet yeniden başlatılabilir:

“`
docker-compose up -d –no-deps –build web
“`

Bu komut, `web` hizmetini güncelleyerek başlatır, diğer bağımlı hizmetleri çalıştırmaz ve gerekli olduğunda imajı yeniden oluşturur.

Sorun Giderme

Docker Compose ile çalışırken sorunlar sıklıkla ortaya çıkabilir. Başlatılan hizmetlerle ilgili log çıktısı almak için şu komut kullanılabilir:

“`
docker-compose logs
“`

Belirli bir hizmetin loglarını görüntülemek için, hizmet adı eklenebilir:

“`
docker-compose logs web
“`

Hizmetlerin durumu kontrol edilmek istendiğinde ise şu komut kullanılabilir:

“`
docker-compose ps
“`

Bu komut, o anki konteynerlerin durumunu listeleyecektir.

Service’leri Durdurma

Başlatılan hizmetleri durdurmak için `docker-compose down` komutu kullanılabilir. Bu komut, tüm hizmetleri durdurur ve ilgili konteynerleri siler:

“`
docker-compose down
“`

Varsayılan olarak, hizmetlerin bağlı olduğu ağlar ve hacimler korunur, ancak kaldırılması istenirse `-v` opsiyonu eklenerek tüm altyapı da temizlenebilir:

“`
docker-compose down -v
“`

Bu işlem, oluşturulan ağ ve hacimlerin de silinmesini sağlar.

Sonuç

Docker Compose up komutu, birden fazla servisi kolay bir şekilde başlatmayı sağlayarak, mikro hizmet mimarisi üzerinde çalışan uygulamaların yönetimini kolaylaştırır. İçeriğinde sunulan yapılandırma dosyası, kullanıcıların ihtiyaçlarına göre özelleştirilebilir. Arka planda çalıştırma, belirli hizmetlerin başlatılması gibi ek özellikler, uygulama geliştirme sürecini daha verimli hale getirir. Docker Compose ile şeffaf bir ortamda çalışmak, uygulama geliştirmenin temel dinamiklerinden biridir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR