Docker Compose Nedir?
Docker Compose ile birden fazla konteyneri bir arada tanımlayabilir ve onları bir komutla başlatabilirsiniz. Bu araç, geliştirme ve test ortamlarını kurarken gerçekten hayat kurtarıcıdır. Hadi gelin, Docker Compose ile nasıl çalışmaya başlayacağınızı adım adım keşfedelim.
Docker Compose Kullanmak İçin İlk Adımlar
1. Docker ve Docker Compose Yüklemesi: Docker Compose’u kullanmaya başlamadan önce, bilgisayarınızda Docker’ın kurulu olması gerekiyor. Docker Compose, Docker'ın bir parçasıdır, bu yüzden Docker’ı indirip yükledikten sonra Compose otomatik olarak yüklenir. Eğer zaten Docker kuruluysa, `docker-compose` komutunu terminal üzerinden çalıştırarak Compose'un yüklü olup olmadığını kontrol edebilirsiniz.
2. Proje Klasörü ve Dockerfile: Projelerinizi yönetmek için her şeyin bir yerde düzenli olması önemli. Projenize ait bir klasör oluşturun ve içinde bir `Dockerfile` dosyası bulundurun. Bu dosya, uygulamanızın hangi bağımlılıkları gerektirdiğini ve nasıl çalıştığını tanımlar.
Örneğin, basit bir Node.js uygulaması için şöyle bir `Dockerfile` kullanabilirsiniz:
kopyalaFROM node:14 WORKDIR /app COPY . . RUN npm install CMD ["node", "app.js"]
Bu `Dockerfile`, uygulamanızın her ortamda aynı şekilde çalışmasını sağlar. Şimdi, asıl işin sıradaki kısmına geçelim: docker-compose.yml dosyasını yazmak.
docker-compose.yml Dosyasını Yazmak
Örneğin, bir web uygulaması ve veritabanı ile çalışan bir projeyi ele alalım. Bu projede, bir Node.js web uygulamasına ve bir MongoDB veritabanasına ihtiyacınız var. Aşağıdaki gibi bir docker-compose.yml dosyası kullanabilirsiniz:
kopyalaversion: "3.8" services: web: build: . ports: - "3000:3000" depends_on: - db db: image: mongo:latest volumes: - dbdata:/data/db volumes: dbdata:
Bu docker-compose.yml dosyası, bir web servisi ve bir db servisi (MongoDB) içeriyor. Web servisi, Dockerfile’dan build edilecek ve port 3000 üzerinden erişilebilir olacak. MongoDB ise son sürümünü kullanarak verilerinizi saklayacak. Ayrıca, depends_on komutuyla web servisi başlatılmadan önce veritabanının hazır olmasını sağlıyoruz.
Docker Compose Komutları ile Çalışmak
1. docker-compose up: Bu komut, `docker-compose.yml` dosyasını okur ve tanımlanan tüm servisleri çalıştırır. Eğer ilk kez çalıştırıyorsanız, gerekli imajları indirip konteynerleri oluşturacaktır.
2. docker-compose down: Çalışan konteynerleri durdurur ve siler.
3. docker-compose logs: Konteynerlerin loglarını görüntüler. Sorun giderme sırasında çok faydalıdır.
4. docker-compose exec: Çalışan bir konteyner içinde komut çalıştırmanızı sağlar. Örneğin, veritabanına bağlanmak için kullanabilirsiniz.
Docker Compose ile CI/CD Entegrasyonu
Docker Compose, yalnızca geliştirme sürecini hızlandırmakla kalmaz, aynı zamanda testleri ve üretim ortamlarını yönetirken de oldukça faydalıdır. Tüm bu servisleri bir arada tutarak, her şeyin uyum içinde çalışmasını sağlarsınız.
Sonuç Olarak...
Bu yazı ile Docker Compose'un temellerine dair iyi bir başlangıç yapmış olduk. Artık, projelerinizi yönetmenin ne kadar kolaylaştığını göreceksiniz!