Docker Compose Nedir?

Mert KILIÇASLAN
3 min readAug 6, 2023

--

Docker Compose, Docker imagelerini ve containerlarını yönetmek ve çalıştırmak için kullanılan bir araçtır. Birden fazla servisi, ağları ve depolama birimlerini tek bir yapılandırma dosyasında tanımlamanıza olanak tanır.

Docker Compose dosyası (docker-compose.yml) sayesinde uygulamalarınızın birden fazla container’ını aynı anda başlatmak, durdurmak ve ölçeklendirmek kolaylaşır. Bu, geliştirme, test ve üretim ortamlarında uygulamalarınızın verimli bir şekilde çalışmasını sağlar.

Docker Compose dosyası (docker-compose.yml) Docker container’ını ve servislerini tanımlayan bir YAML formatına sahiptir. Docker Compose dosyasında, servislerin kullanacağı imagesler, bağımlılıklar, network, bağlantılar, yapılandırmalar ve diğer özellikler belirtilir.

version: '3'
services:
web:
image: mert_web_app:latest
ports:
- "8080:80"
depends_on:
- db
db:
image: mysql:8.1
environment:
MYSQL_ROOT_PASSWORD: mertsecret
MYSQL_DATABASE: mertdb

Yukarıdaki örnek, “web” adında bir servis ve “db” adında bir veritabanı servisi tanımlar.

“web” servisi, “mert_web_app” adlı Docker image’inin kullanır ve 8080 portunu 80 portuna bağlar.

“db” servisi ise resmi MySQL 8.1 image’inin kullanarak MySQL veritabanını başlatır ve gerekli ortam değişkenlerini ayarlar.

Docker Compose Özellikleri ve Avantajları

  • Basit

Docker Compose dosyası, servisleri ve bağımlılıkları tek bir dosyada tanımlar. Bu sayede uygulamalarınızın yapılandırması basit olur.

  • Multi Container Yönetimi

Docker Compose, birden fazla container’ı tek bir yapılandırma dosyasıyla yönetmenizi sağlar. Tüm konteynerleri aynı anda başlatmak, durdurmak ve ölçeklendirmek kolaylaşır.

  • Ağlar ve Bağlantılar

Docker Compose, containerlar arasındaki networkleri ve bağlantıları tanımlamak için kullanılır. Bu sayede containerlar arasında iletişim kurabilir ve bağlantılar oluşturabilirsiniz.

Docker Compose Komutları

  • docker-compose up

Docker Compose dosyasındaki servisleri başlatmak için kullanılır. Eğer “docker-compose.yml” dosyası bulunuyorsa, bu komutu çalıştırmak Docker Compose dosyasındaki servisleri ve bağlı ağları başlatacaktır.

Eğer dosya “docker-compose.yml” yerine farklı bir isimde ise, -f veya — file parametresi ile dosyanın adı belirtilmelidir.

docker-compose up
  • docker-compose up -d

Servisleri arka planda başlatmak için kullanılır. Servisler çalışırken çıktıları görmek istemezseniz bu komutu kullanabilirsiniz.

docker-compose up -d
  • docker-compose down

Docker Compose dosyasındaki servisleri ve bağlı ağları durdurmak ve kaldırmak için kullanılır.

docker-compose down
  • docker-compose ps

Docker Compose dosyasındaki servislerin durumunu ve bilgilerini görüntülemek için kullanılır.

docker-compose ps
  • docker-compose logs

Servislerin günlük (log) çıktılarını görüntülemek için kullanılır.

Tüm servislerin loglarını görmek için parametre olarak — follow veya kısa hali -f kullanılabilir.

docker-compose logs
docker-compose logs -f
  • docker-compose build

Docker Compose dosyasında tanımlanan servislerin imagelerini oluşturmak için kullanılır. Eğer imageler daha önceden oluşturulmuşsa, bu komut imageleri yeniden oluşturacaktır.

docker-compose build
  • docker-compose start

Docker Compose dosyasındaki servisleri başlatmak için kullanılır. Eğer servisler daha önceden çalıştırıldıysa, bu komut onları tekrar başlatmaz.

docker-compose start
  • docker-compose stop

Docker Compose dosyasındaki servisleri durdurmak için kullanılır.

docker-compose stop
  • docker-compose restart

Docker Compose dosyasındaki servisleri yeniden başlatmak için kullanılır.

docker-compose restart
  • docker-compose exec

Docker Compose dosyasındaki servisler içinde bir komutu çalıştırmak için kullanılır. Örneğin, bir “web” sunucusu içindeki bash kabuğunu çalıştırmak için:

docker-compose exec web bash
  • docker-compose down —

Docker Compose dosyasındaki servisleri ve ağları kaldırmak için kullanılır. Ayrıca, bağlı olan tüm veri depolama birimlerini de (volumes) kaldırır.

docker-compose down --volumes
  • docker-compose config

Docker Compose dosyasının geçerli yapılandırmasını kontrol etmek için kullanılır. Yapılandırma geçerli ise, Docker Compose dosyasında herhangi bir hata olmadığını gösterir.

docker-compose config

--

--