Ana içeriğe geç

Docker Compose Kurulumu ve Kullanımı (Ubuntu 22.04)

Docker Compose kurulumu, çoklu konteyner mimarilerini tek dosya ile yönetmeyi sağlar.

Bu rehberde ne öğreneceksiniz?

Bu rehberde Docker Compose’un Ubuntu 22.04 üzerinde nasıl kurulacağını öğreneceksiniz.
Tek servisli ve çok servisli uygulamaları yönetmeyi göreceksiniz.
WordPress + MySQL ve modern kullanım senaryolarını uygulayacaksınız.


Teknik Özet

Bu rehber, Ubuntu 22.04 üzerinde Docker Compose v2 kurulumunu anlatır.
Amaç, çoklu konteyner uygulamalarını YAML dosyasıyla yönetmektir.
Adımlar; kurulum, örnek yapı, çalıştırma, ölçekleme ve hata çözümüdür.


Ön Koşullar

  • Ubuntu 22.04 yüklü bir sunucu
  • sudo yetkisine sahip kullanıcı
  • Docker Engine kurulmuş olmalı

1. Adım: Docker Compose Kurulumu (Önerilen Yöntem)

Bu adım Docker’ın resmi deposunu ekler ve Compose eklentisini kurar.

sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
  • Bu komut Docker imza anahtarını ekler.


sudo apt install docker-compose-plugin
  • Bu komut Docker Compose v2’yi kurar.

Kurulumu doğrulamak için:


docker compose version

2. Adım: docker-compose.yml Dosyası Oluşturma

  1. Bu adım basit bir Nginx servisi tanımlar.

mkdir ~/compose-demo && cd ~/compose-demo
mkdir app
nano app/index.html
  • Bu dosya Nginx tarafından servis edilecek içeriği içerir.


<h1>Docker Compose Demo</h1>
<p>Bu sayfa Nginx konteynerinden geliyor.</p>

docker-compose.yml Örneği


services:
web:
image: nginx:alpine
ports:
- "8000:80"
volumes:
- ./app:/usr/share/nginx/html
  • Bu yapı Nginx’i 8000 portundan yayınlar.

3. Adım: Docker Compose Çalıştırma

  1. Bu komut tüm servisleri arka planda başlatır.

docker compose up -d

Çalışan servisleri görmek için:


docker compose ps

4. Adım: Temel Docker Compose Komutları

  1. Logları görüntülemek için:

docker compose logs

Servisleri durdurmak için:


docker compose stop

  • Tüm yapıyı silmek için:

docker compose down

5. Adım: Çok Servisli Uygulama (WordPress + MySQL)

  1. Bu yapı gerçek projelerde sık kullanılır.

services:
db:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: guclu_sifre
MYSQL_DATABASE: wordpress

wordpress:
image: wordpress:latest
ports:
- "8001:80"
depends_on:
- db

volumes:
db_data:
  • Bu yapı WordPress’i MySQL ile birlikte çalıştırır.

6. Adım: Servis Ölçekleme

  1. Bu komut aynı servisten birden fazla kopya oluşturur.

docker compose up -d --scale web=3
  • Not: Sabit port tanımı varsa çakışma olur.

7. Adım: docker-compose (v1) → docker compose (v2) Geçişi

1. docker-compose ❌ artık kullanılmaz

2. docker compose ✅ güncel komuttur

3. YAML dosyaları uyumludur


Sıkça Sorulan Sorular (SSS)

1. Docker Compose ne işe yarar? Birden fazla konteyneri tek dosya ile yönetir.

2. Docker Compose production için uygun mu? Tek sunuculu yapılar için uygundur.

3. Permission denied hatası neden olur? Kullanıcı docker grubunda değildir.


sudo usermod -aG docker $USER

4. Port çakışması nasıl çözülür? Host portu değiştirin.

5. docker-compose.yml neden hata verir? YAML girintisi hatalıdır.


Sonuç

Docker Compose, modern uygulamaları yönetmenin en pratik yoludur. Tek komutla servis başlatır, durdurur ve ölçeklersiniz.

🚀 Rabisu Bulut altyapısında Docker Compose ile projelerinizi dakikalar içinde yayına alabilirsiniz.