Docker Compose Nedir?
Docker Compose Kurulumu
1. Docker Desktop İndirin ve Kurun
Docker Desktop, Windows için Docker'ı kolayca kurmanıza olanak tanır. Docker Desktop'ı [resmi sitesinden](https://www.docker.com/products/docker-desktop) indirip kurabilirsiniz.
2. Docker Compose’ın Kurulumu
Docker Desktop'ı kurduktan sonra, Docker Compose zaten Docker Desktop ile birlikte gelir. Ancak, kurulum tamamlandıktan sonra terminale şu komutu yazarak Docker Compose’ın doğru bir şekilde kurulduğunu kontrol edebilirsiniz:
docker-compose --version
Eğer her şey yolundaysa, size Docker Compose’ın sürüm numarasını verecektir. Bu sayede Compose'ın kurulu olduğunu doğrulamış olursunuz.
Docker Compose ile Basit Bir Uygulama Çalıştırma
1. Proje Dizini Oluşturun
İlk olarak, bir dizin oluşturun ve bu dizinde tüm dosyalarınızı barındıracak bir yapıyı hazırlayın. Örneğin:
mkdir my-docker-project
cd my-docker-project
2. Dockerfile ve Node.js Uygulaması Oluşturun
Docker Compose ile kullanacağınız servislerden biri Node.js uygulamanız olacak. Bunun için basit bir `Dockerfile` oluşturacağız.
Dockerfile:
# Node.js için temel imaj
FROM node:14
# Çalışma dizinini oluştur
WORKDIR /usr/src/app
# Proje dosyalarını kopyala
COPY package*.json ./
# Bağımlılıkları yükle
RUN npm install
# Uygulama portunu aç
EXPOSE 8080
# Uygulamayı başlat
CMD [ "node", "index.js" ]
index.js (Node.js uygulaması):
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Merhaba Docker!');
});
app.listen(8080, () => {
console.log('Uygulama 8080 portunda çalışıyor...');
});
3. MongoDB için Konfigürasyon Ekleyin
MongoDB'yi kullanabilmek için Docker Compose dosyanıza bir MongoDB servisi ekleyeceğiz.
4. docker-compose.yml Dosyasını Oluşturun
Şimdi, tüm servislerinizi tanımlamak için `docker-compose.yml` dosyasını oluşturmanız gerekiyor. Aşağıda, Node.js uygulamanız ve MongoDB’yi bir arada çalıştıran bir örnek bulabilirsiniz:
version: '3'
services:
web:
build: .
ports:
- "8080:8080"
depends_on:
- db
db:
image: mongo
volumes:
- mongodb-data:/data/db
ports:
- "27017:27017"
volumes:
mongodb-data:
Burada, `web` servisi Node.js uygulamanızı temsil ederken, `db` servisi MongoDB veritabanını temsil eder. Her iki servis de birbirine bağlıdır, bu nedenle MongoDB'nin doğru bir şekilde çalışması için `depends_on` parametresi kullanılır.
Docker Compose ile Uygulama Çalıştırma
docker-compose up --build
Bu komut, Docker Compose’ın tanımlı servislerinizi oluşturmasını ve başlatmasını sağlar. Başarılı bir şekilde başlatıldığında, terminalde şu çıktıyı görmelisiniz:
```
Starting my-docker-project_web_1 ... done
Starting my-docker-project_db_1 ... done
```
Eğer her şey doğru bir şekilde çalışıyorsa, `http://localhost:8080` adresine gittiğinizde, "Merhaba Docker!" mesajını görmelisiniz.