Yeni Başlayanlar İçin MongoDB ve Docker Konteynerizasyonu

Yeni Başlayanlar İçin MongoDB ve Docker Konteynerizasyonu

Yeni Başlayanlar İçin MongoDB ve Docker Konteynerizasyonu, MongoDB ve Docker'in temellerini öğrenmek isteyenler için tasarlanmıştır Bu eğitim, bir veritabanı yöneticisi olmak isteyen veya bir uygulama geliştirici olmak isteyen herkes için faydalı olacaktır Konteyner teknolojisi ve MongoDB kullanarak web uygulamaları geliştirmek isteyenler için bu kurs kaçırılmayacak bir fırsattır

Yeni Başlayanlar İçin MongoDB ve Docker Konteynerizasyonu

MongoDB ve Docker, günümüzde popülerlik kazanmış teknolojilerdir. Ancak, yeni başlayanlar için bu teknolojilerin nasıl kullanılacağı belirsiz olabilir. Bu makalede, MongoDB ve Docker'ın basitçe açıklanması ve konteynerizasyon için nasıl kullanılacağı anlatılacaktır. MongoDB, NoSQL veritabanı olarak kullanılır ve JSON formatındaki dokümanları saklar. Docker ise, bir yazılımı konteynerize etmek için kullanılan bir açık kaynaklı platformdur.

Bu makalede, MongoDB ve Docker konteynerizasyonunun kullanımı ve yönetimi ele alınacaktır. Konteynerler, uygulamanın tüm bağımlılıklarını birlikte paketler. Konteynerler, sanal makinelerin aksine daha hafiftir ve daha hızlı çalışırlar. Docker Hub, hazır konteyner görüntülerinin bulunduğu bir topluluk deposudur. MongoDB, Docker konteynerizasyonu ile kullanıldığında, her uygulama için ayrı bir veritabanı oluşturabilirsiniz.

Docker Swarm, birden çok Docker konteynerının yönetimini kolaylaştıran bir araçtır. Swarm, bir Docker servisi oluşturmak için birden çok konteynerı bir arada çalıştırır. Docker Compose, birden fazla konteynerın bir arada çalışmasını kolaylaştıran bir araçtır. Kompozisyon dosyası ise, birden fazla konteynerın oluşturulmasını ve yapılandırılmasını tanımlar.

Bu makalede anlatılanlar, MongoDB ve Docker ile geliştirme yapmak için iyi bir başlangıçtır. Konteynerizasyonun avantajlarından yararlanarak, uygulamalarınızı daha hızlı ve verimli hale getirebilirsiniz. Bu teknolojilerin kullanımı yeni başlayanlar tarafından öğrenilebilecek seviyededir ve bu makaledeki örnekler, uygulamalarınıza başlamak için yeterlidir.


MongoDB Nedir?

MongoDB Nedir?

MongoDB, belirli bir veri modelini takip etmeyen bir NoSQL veritabanıdır. SQL veritabanlarında olduğu gibi, veriler tablolarda değil de doküman olarak saklanır. Bu dokümanlar JavaScript Object Notation (JSON) tarzında şekillendirilir.

MongoDB, ölçeklenebilir ve yüksek performanslı bir veritabanıdır. Veritabanındaki tüm dokümanlar benzersiz bir kimlik bilgisine (ObjectId) sahip olur ve bu kimlik bilgisi ile kolaylıkla erişilebilirler. Veritabanının özellikleri arasında yedekleme, replikasyon ve kümeleme de yer alır.


Docker Nedir?

Docker, açık kaynaklı bir platformdur ve yazılımların konteynerize edilmesine olanak sağlar. Konteynerler, tüm bağımlılıkları ile birlikte bir uygulamanın paketlenmiş halidir. Docker, bu konteynerleri kullanarak uygulamaların taşınabilirliğini arttırır ve yapısı gereği daha hafiftir ve daha hızlı çalışır.

Docker Hub, hazır konteyner görüntülerinin bulunduğu bir topluluk deposudur. Kullanıcılar, Docker Hub üzerindeki bu hazır görüntüleri kullanarak kendi uygulamalarını hızlı ve kolay bir şekilde konteynerize edebilirler. Ayrıca Docker, birden fazla konteynerın bir arada çalıştırılmasını kolaylaştıran araçlar da sunar. Docker Compose, birden fazla konteynerın bir arada çalışmasını kolaylaştırırken, Docker Swarm birden fazla konteynerı yönetir ve aynı servisin birden fazla örneğini çalıştırır.


Konteyner Nedir?

Konteyner, bir uygulamanın tüm bağımlılıkları ile birlikte paketlenmiş hali olarak tanımlanır. Bu bağımlılıklar içinde işletim sistemi, dil çevreleri, kütüphaneler ve uygulama dosyaları bulunur. Konteyner, bağımlılıkları ile birlikte kurulum gerektirmez ve kolaylıkla taşınabilir.

Sanal makinelerin aksine, konteynerler daha hafif ve daha hızlıdır. Konteynerler, birçok uygulamanın aynı işletim sistemi ortamında çalışmasını sağlar. Ayrıca, konteynerlerin farklı birimleri bağımsız bir şekilde yönetilebilir ve çalışabilir.


Konteyner vs. Sanal Makine (VM)

Konteyner ve sanal makine (VM) arasındaki farklar, performans ve kullanım açısından oldukça belirgin ve önemlidir. Sanal makineler, bir fiziksel makine üzerinde birden fazla sanal makine çalıştıran bir yazılım sistemidir. Sanal makine, kendi işletim sistemine ve tüm bağımlılıklarına sahiptir. Bu nedenle, sanal makineler daha büyük ve daha ağır olabilir.

Konteynerler ise, işletim sistemi düzeyinde yalıtılmış bir ortamda çalışır. Sadece uygulamanın çalışması için gerekli olan kütüphaneleri ve araçları içerir. Bu nedenle, konteynerlar daha hafif ve daha hızlıdır. Konteynerler, fiziksel makine üzerindeki kaynakların daha verimli kullanılmasını sağlar ve uygulamaların hızlı bir şekilde başlatılmasını ve çalıştırılmasını sağlar.

Konteyner Sanal Makine
Daha hafif ve daha hızlı Daha büyük ve daha ağır
Yalnızca uygulamanın çalışması için gerekli olan kütüphaneler ve araçlar içerir Kendi işletim sistemine ve tüm bağımlılıklarına sahiptir
Fiziksel makine üzerindeki kaynakların daha verimli kullanılmasını sağlar Fiziksel makine üzerindeki kaynakların daha az verimli kullanılmasına neden olabilir

Özellikle çoklu uygulama çalıştırmak için ihtiyaç duyulan izolasyon ve kaynak tahsisi gereksinimleri göz önüne alındığında, konteynerlar sanal makinelerden daha verimli bir seçenek olabilir.


Docker Hub Nedir?

Docker Hub, yazılım geliştiricilerin kullanabileceği hazır konteyner görüntülerinin bulunduğu bir topluluk deposudur. Bu da yazılım geliştiricilerinin uygulamalarını hızlı bir şekilde dağıtmalarına olanak tanır. Docker kullanıcıları, Docker Hub'a kaydolabilir ve kendi konteyner görüntülerinizi yükleyebilirsiniz.

Docker Hub, kullanıcıların paylaştığı görüntülerin yanı sıra, önceden yüklenmiş hazır görüntülere sahiptir. Bu hazır görüntüler, birçok yazılım yığını için mevcuttur ve kullanıcılar bunları indirerek hemen kullanmaya başlayabilir.

Ayrıca Docker Hub, kullanıcıların görüntülerini aramalarını ve kullanıcılar tarafından oluşturulan topluluk tarafından oluşturulan Docker görüntülerinde depolama yapmasını da sağlar. Docker Hub, tıpkı GitHub gibi bir açık kaynaklı topluluk tabanlı bir platformdur ve Docker topluluğu tarafından sürekli olarak güncellenir.


MongoDB Ve Docker Konteynerizasyonu

MongoDB ve Docker, konteynerizasyon ile birlikte kullanıldığında, uygulama geliştiricilerin ölçeklenebilir, güvenli ve kullanışlı platformlar oluşturmasına yardımcı olur. MongoDB, Docker konteynerizasyonu ile birlikte kullanılabildiğinde, her uygulama için ayrı bir veritabanı oluşturabilir. Bu sayede, farklı uygulamaların verileri birbirinden ayrı tutulur ve bu verilerin yönetimi daha da kolaylaşır.

MongoDB ve Docker konteynerizasyonu, uygulama geliştiricilerin birçok avantajından biridir. Örneğin, MongoDB konteynerleri, herhangi bir önbellek gerektirmeden veritabanı örnekleriyle hızla ölçeklendirilebilir. Buna ek olarak, oluşturulan konteynerler hafifa ağırlıklı oldukları için daha hızlı çalışırlar.

MongoDB ve Docker'ın konteynerizasyonu, uygulama geliştiricilerinin verilerini daha güvenli hale getirir. Konteynerler, herhangi bir özel kurulum gerektirmeden çalıştıkları için, uygulama geliştiricilerinin işletim sistemi veya donanım başarısızlıkları gibi sorunlarla ilgilenmek zorunda kalmaları engellenir. Ayrıca, Docker Hub gibi depolama servisleri sayesinde MongoDB konteynerları hızlı ve kolay bir şekilde paylaşılabilir ve yaygın olarak kullanılabilir.


Komut Satırında MongoDB Konteyneri Oluşturma

MongoDB ve Docker konteynerizasyonunu kullanırken, her uygulama için ayrı bir veritabanına ihtiyaç duyulabilir. Bu nedenle, MongoDB konteyneri oluşturmak oldukça önemlidir. Konteyneri oluşturmak için, komut satırında aşağıdaki komutu çalıştırmanız yeterlidir:

Komut: docker run --name some-mongo -d mongo

Bu komut, MongoDB görüntüsünden bir konteyner başlatır. --name parametresi ile konteynerin adı belirlenir ve -d parametresi ile arka planda çalışması sağlanır. Konteynerin başarılı bir şekilde oluşturulup oluşturulmadığını kontrol etmek için, aşağıdaki komutu çalıştırabilirsiniz:

Komut: docker ps

Bu komut, çalışan bütün konteynerları listeler. Konteynerinizin STATUS kolonunda Up yazması gerekmektedir. Artık MongoDB konteyneri oluşturuldu ve kullanıma hazırdır.

docker run --name some-mongo -d mongo

Docker konteyneri oluşturmak için komut satırında docker run komutu kullanılır. Bu komut, Docker Hub'dan veya yerelde bulunan bir konteyner imajından bir Docker konteyneri oluşturur. MongoDB yüklemek için, "mongo" isimli resmi imajı kullanabilirsiniz.

docker run --name some-mongo -d mongo komutu, Mongo veritabanı yüklemesi gerçekleştirir ve "some-mongo" isimli konteynerı başlatır. MongoDB konteynerinin adı "some-mongo", -d parametresi ise konteynerin arka plânda çalışacağı anlamına gelir.

Eğer yerelde bulunmayan bir MongoDB imajı kullanmak isterseniz, Docker Hub üzerindeki MongoDB imajını kullanabilirsiniz. Örneğin, "docker run --name some-mongo -p 27017:27017 -d mongo:4.4" komutu, MongoDB 4.4 sürümünü kullanarak, 27017 numaralı bağlantı noktasını ayrı bir portda kullanarak "some-mongo" adlı bir konteyner başlatır.

Bu komutu çalıştırdıktan sonra, MongoDB konteynerı oluşturulmuş olacaktır.

, bu komut MongoDB görüntüsünden bir konteyner başlatır.

Bir MongoDB konteyneri oluşturmak için komut satırında aşağıdaki komut kullanılabilir:

Komut Açıklama
docker run --name some-mongo -d mongo Bu komut MongoDB görüntüsünden bir konteyner başlatır.

Bu komutu çalıştırmadan önce Docker'ın yüklü olduğundan emin olun.

Ayrıca, "some-mongo" yerine farklı bir ad kullanarak konteynerın adını değiştirebilirsiniz.

Komutun sonunda "mongo" belirtilmemiş olsaydı, varsayılan olarak en son MongoDB sürümü kullanılırdı.


Komut Satırında MongoDB Konteynerine Erişim Sağlama

Docker konteynerleri, izolasyonun sağlanması ve uygulamaların hızlı bir şekilde çalıştırılabilmesi için kullanılan önemli bir teknolojidir. Ancak, bir konteynerin içinde işlem yapmak için, konteynera erişim sağlamak gerekir. Bu durumda, Docker komut satırı arayüzü kullanılarak, MongoDB konteynerına erişim sağlamak mümkündür. Bu işlem için aşağıdaki komutu kullanabilirsiniz:

docker exec -it some-mongo bash

Bu komut, belirtilen isimdeki Docker konteynerine erişim sağlar ve bash kabuğu arayüzünü açar. Böylece, konteynere komut satırı yardımıyla işlemler yapabilirsiniz. Örneğin, MongoDB için veritabanı oluşturma, veritabanı içinde doküman ekleme gibi işlemler bu şekilde gerçekleştirilebilir.Docker komut satırı arayüzü, Docker konteynerleri ile çalışırken oldukça faydalı bir araçtır. Konteynerda oluşabilecek hataların giderilmesi, veritabanı işlemleri yapılması gibi işlemler bu arayüz sayesinde kolayca gerçekleştirilebilir. Ayrıca, Docker ile ilgili konularda daha fazla bilgi edinmek için dokümantasyonlar da kullanılabilir.docker exec -it some-mongo bash

Konteynerler çalışırken, içerisindeki uygulamaları yönetmek için konteynere erişmek gerekebilir. Bu durumda kullanılabilecek komut, şu şekildedir:

Komut Açıklama
docker exec -it <CONTAINER_NAME> bash Konteynera bağlanarak, yeni bir kabuk açar.

Bu komut çalıştırıldığında, eğer daha önce belirtilmediyse Docker tarafından otomatik olarak bir kabuk belirlenir. Bu kabuk, konteynerin işletim sisteminin standart kabuğudur. Bu sayede, MongoDB konteyneri için de kullanıcı adı ve şifre gibi bilgiler girilebilir. Konteynerda çalıştırılabilecek diğer komutlara da bu şekilde erişilebilir.

, bu komut çalışan bir konteynerin içinde işlemler yapmamızı sağlar.

Bir konteynerin içinde işlemler yapmak için, docker exec -it some-mongo bashkomutunu kullanabilirsiniz. Bu komut çalıştırmakta olduğunuz konteynerin içine bir kabuk oluşturur ve size komut satırı erişimi sağlar. Bu sayede, MongoDB ile ilgili işlemleri gerçekleştirebilirsiniz.


MongoDB Konteyneri Bağlama

birçok nedenle MongoDB konteynerleri arasında bağlantı kurmak gerekebilir. Bu işlem için Docker ağları kullanılır. Docker ağları, birden fazla konteyner arasında iletişim kanalı sağlar. İletişim, konteynerlar arası IP adresleri üzerinden gerçekleşir. Bu ağlar, birbirinden bağımsız olarak yönetilebilir.

Konteynerler arasında ağ oluşturmak için "docker network create somenetwork" komutu kullanılabilir. Bu komut, somenetwork adlı bir ağ oluşturur. Bu örnekte, MongoDB konteynerları için bir ağ oluşturduğumuzu varsayalım. Ağ oluşturulduktan sonra, konteynerlar bu ağa bağlanarak birbirleriyle iletişim kurabilirler.

Bağlantı kurmak için, MongoDB konteynerında şu adımlar izlenir:

1. "docker run --name some-mongo --network somenetwork -d mongo" komutu kullanılarak MongoDB konteynerı başlatılır.2. Başka bir konteynerda MongoDB'ye erişmek için "mongo --host some-mongo" komutu çalıştırılabilir.

Aynı ağa bağlı olan bu konteynerlar birbirleriyle iletişim kurabilir. Bu sayede, birden fazla MongoDB konteynerını aynı ağ üzerinde koşturarak kümeleme yapabilirsiniz.

Yukarıdaki adımların tamamlanmasının ardından, MongoDB konteynerları birbirleriyle bağlantılı hale gelecektir. Bu sayede, uygulamanın farklı parçaları için farklı konteynerlar oluşturabilir ve bu konteynerlar arasında iletişim kurabilirsiniz.

docker network create somenetwork

Konteynerler arasındaki iletişim ağı üzerinden gerçekleştirilir. Bu nedenle, farklı konteynerlar arasında ağ oluşturmak gerekebilir. Docker ağı, izole edilmiş bir ortam sağlar. İzole edilmiş ortamda, farklı uygulamalar bir arada çalışabilir. Ayrıca, Docker ağı üzerinden ayrı konteynerlar arasında bağlantı kurarak, veritabanı örneğinde olduğu gibi, verileri paylaşmak mümkündür.

Aşağıdaki komut ile ağ oluşturulabilir:

docker network create somenetwork

Bu komut, somenetwork adında bir network oluşturur. Oluşturulan ağın, konteynerlar arasında bağlantı kurmak için kullanılabilir olduğunu unutmayın.

komutu ile ağ oluşturulabilir.

Konteynerler arasındaki iletişim, ağlar üzerinden yapılır. Yeni bir ağ oluşturmak için Docker ağı komutunu kullanabilirsiniz. Örneğin:

  • docker network create somenetwork

Bu komut, "somenetwork" adındaki bir Docker ağı oluşturur. Ayrıca, mevcut konteynerlerin bu ağa katılması gerekir. Örneğin, aşağıdaki komutu kullanarak MongoDB konteynerini oluşturduysanız:

  • docker run --name some-mongo -d mongo

Ayrıca, bu konteynerin oluşturulduğu komutu kullanarak aynı ağa bağlanabilirsiniz. Örneğin:

  • docker run --name some-mongo --network somenetwork -d mongo

Bu komut, "some-mongo" adındaki bir MongoDB konteynerını oluşturur ve "somenetwork" adındaki Docker ağına bağlanır. Artık, diğer konteynerlar da aynı ağa bağlanarak MongoDB konteyneriyle iletişim kurabilir.


MongoDB Ve Docker Swarm

MongoDB ve Docker konteynerizasyonunun bir diğer önemli aracı olan Docker Swarm, birden çok Docker konteynerının yönetimini kolaylaştıran açık kaynaklı bir araçtır. Swarm, bir Docker servisi oluşturmak için birden çok konteynerı bir arada çalıştırır.

MongoDB ile kullanıldığında, Swarm, kümeleme özelliği olan MongoDB'nin birden çok MongoDB örneği kullanılmasına olanak tanır. Böylece, yüksek kullanılabilirlik, veri yenileme, yedekleme ve sorun giderme özellikleri sağlanmış olur.

Swarm, aynı zamanda ölçeklenebilirlik için kullanılabilir. Birden çok MongoDB örneği kullanılarak, performans artırılabilir ve daha fazla kullanıcıya hizmet verilebilir.

Bir Swarm kümesi, birden çok Docker servisini yönetebilir ve bu servisler, ölçeklenebilir, güvenilir ve hızlı bir şekilde dağıtılabilir.

Bir örnekle açıklamak gerekirse; docker service create --name mongodb --network somenetwork mongokomutu kullanılarak MongoDB servisi oluşturulabilir. Bu servisin birden çok MongoDB örneğiyle çalıştırılması Swarm aracılığıyla sağlanabilir.

Swarm, birden çok Docker konteynerının yönetimi için kullanılan güçlü bir araçtır ve MongoDB ile birlikte kullanıldığında veritabanı işlemleri daha ölçeklenebilir ve güvenilir hale getirilebilir.


Swarm Nedir?

Swarm, birden çok Docker konteynerının yönetimini kolaylaştıran bir araçtır. Swarm oluşturulduğunda, birden çok Docker host tarafından çalıştırılan konteynerlar bir arada çalışır. Bu, uygulamanın daha yüksek bir hizmet düzeyini sunmasına olanak sağlar.

Swarm, bir Docker servisi oluşturmak için birden çok konteynerı bir arada çalıştırır. Servisin günlükleri izlenebilir, farklı hizmetler ayarlanabilir ve tek bir komutla tüm hizmetler kapatılabilir. Bunun yanı sıra, yönetimini kolaylaştıran bir grafik kullanıcı arayüzü de bulunmaktadır.

Swarm kullanımı, depolama alanının daha etkili bir şekilde kullanılmasını sağlar ve otomatik yedekleme özellikleri sunar. Bunun yanı sıra, swarm, iş yüklerini geliştirir ve daha verimli bir hale getirir. Swarm ayrıca, birden çok konteynerı çalıştıran aplikasyonlar için canlı yeniden başlatma işlevselliği sağlayarak uygulamanın kesintisiz bir şekilde çalışmaya devam etmesini sağlar.


MongoDB Servisi Oluşturma

Docker Swarm ile MongoDB servisi oluşturmak oldukça kolaydır. Basit bir komutla MongoDB servisi hızlı bir şekilde oluşturulabilir. Öncelikle docker network create somenetworkkomutu ile ağımızı oluşturmalıyız. Daha sonra docker service create --name mongodb --network somenetwork mongokomutu kullanarak, MongoDB servisimizi tasarlayabilir ve oluşturabiliriz. Bu komutla, Docker Swarm, somenetwork adlı ağımıza MongoDB görüntüsünden bir servis oluşturur. Servis, varsayılan olarak bir adet MongoDB konteynerını çalıştırır. Ayrıca,docker service ps mongodbkomutu kullanılarak, MongoDB servisinde çalışan konteynerların listesi görülebilir. MongoDB servisi, ölçeklenebilir ve yüksek kullanılabilir olması nedeniyle, en iyi uygulama yöntemlerinden biridir.

docker service create --name mongodb --network somenetwork mongo

Docker Swarm'ın sağladığı kolaylıklardan biri de birden çok Docker konteynerını bir arada çalıştırabilme özelliğidir. MongoDB servisinin oluşturulması için docker service create --name mongodb --network somenetwork mongokomutu kullanılır. Bu komut, "mongodb" adında bir servis oluşturur ve "somenetwork" adındaki ağa bağlanır. Ayrıca, MongoDB'nin resmi görüntüsü kullanılarak servisin başlatılması sağlanır.

Bu yöntem, MongoDB servislerinin ölçeklenebilirliğini sağlar. Yeni bir MongoDB servisi, tek bir komut ile aynı ağ üzerinde eklenebilir. Bu sayede, MongoDB verilerini birden fazla konteyner arasında paylaşmak kolaylaşır.

komutu kullanarak, MongoDB servisi oluşturulabilir.

MongoDB ve Docker Swarm ile kullanıldığında, birden fazla MongoDB konteynerının yönetimi kolaylaşır. MongoDB servisi, Docker servisi oluşturma komutu ile oluşturulabilir. Bu komutu kullanarak, belirlediğimiz bir ağ üzerinde çalışacak bir MongoDB servisi oluşturulabilir.

Örneğin, aşağıdaki komut MongoDB servisi oluşturacaktır:

docker service create --name mongodb --network somenetwork mongo
Bu komut, 'mongodb' adında bir servis oluşturacaktır. Bu servis, 'somenetwork' adlı ağda çalışacaktır. Ayrıca, 'mongo' imajı kullanılarak herhangi bir istemci tarafından erişilebilecek bir MongoDB veritabanı oluşturulur.


Kümeleme (Clustering)

MongoDB, kümeleme özelliğiyle çalışır ve bu özellik sayesinde birden fazla MongoDB örneği kullanılarak daha güvenilir ve hızlı bir hizmet sunulur.

Bir MongoDB kümesi, keyfi sayıda MongoDB örneğinden oluşur ve bu örnekler arasında veri ve yük dağıtımı yapılır. Kümeleme, yüksek kullanılabilirlik, ölçeklenebilirlik ve performans için gereklidir.

Kümeleme, birden fazla MongoDB örneğinin senkronize olması ve verileri kopyalaması için kullanmak için birincil ve ikincil adı verilen örneklere ihtiyaç duyar. Birincil örnek, veri yönetimini üstlenirken, ikincil örnekler yedekleme amacıyla kullanılır. İkincil örnekler ayrıca birincil örneğin hizmet dışı kalması durumunda tamponlama görevi de görür.

MongoDB kümelemesi, aynı veritabanına erişen birden fazla uygulama sunucusunu kullanarak ölçeklenebilirliği sağlama ihtiyacını ortadan kaldırır. Bu, uygulama sunucularının sayısını artırarak talep artışına cevap verebilir ve daha yüksek performans sağlayabilir.

Bu işlem, MongoDB örneği kullanılarak gerçekleştirilir ve her bir örnek birincil veya ikincil olacak şekilde yapılandırılır. Örnekler arasında veri eşleme işlemi gerçekleştirilir ve istemciler, birincil veya ikincil örneklere yönlendirilir.

Her bir örnek, bir depolama alanı ve bellek veri tabanına sahip olduğundan, MongoDB kümelemesi, uygulama sunucularının patlamasından korunmaya yardımcı olur.

MongoDB kümelemesi, olası bir sistem çökmesi durumunda veri kaybını önlemek için RAID disk düzenlerinde olduğu gibi verinin depolandığı her bir diske bir kopya yazmak için bir şerit yedekleme yöntemi kullanır.

Bu sayede, birden fazla MongoDB örneği çalıştırarak veritabanı ile ilgili sorunları önleyerek, daha yüksek bir işlem kapasitesine sahip olabilirsiniz ve başarılı bir şekilde ölçeklenebilir bir veritabanı oluşturabilirsiniz.


Docker Compose

Docker Compose, birden fazla konteynerın bir arada çalışmasını kolaylaştıran bir araçtır. Docker Compose, bir YAML dosyasında birden fazla konteyner için yapılandırma bilgilerini belirtmenize olanak tanır. Bu dosya, birden fazla servis için yapılandırmaları ve uygulamaları tanımlar. Compose, her servisin yapılandırması ve uygulamanın başlatılması için gerekli tüm ayrıntıları içerir.

Bir Docker Compose dosyasında, servislerin bağımlılıklarını belirlediğiniz ve aynı ağda bulunduğunuz için birbiriyle kolayca iletişim kurabildiğiniz bir şekilde ayarlanır. Bu sayede birden fazla servis başlatılabilir ve aynı kurulumda çalıştırılabilir. Böylece bir uygulama için gerekli olan birden fazla servisi tek bir komutla başlatabilirsiniz.

Docker Compose kullanarak birden fazla konteyner'ı aynı anda başlatmak, birden fazla ortamda veya uygulamada kullanılan birkaç servisi koordine etmek için çok faydalıdır. Docker Compose, özellikle web uygulamaları gibi birkaç farklı bağımlılığı olan uygulamalar için faydalıdır.


Kompozisyon Dosyaları

Kompozisyon dosyaları, Docker Compose aracılığıyla birden fazla konteynerın oluşturulmasını ve yapılandırılmasını sağlar. Bu dosyalar, bir Docker Compose projesi için yapılandırma bilgilerini içerir. Bu sayede, proje içindeki tüm konteynerlar bir arada çalışabilir. Kompozisyon dosyası, YAML formatında yazılabilir ve genellikle projenin ana dizininde docker-compose.yml adında kaydedilir.

Bir kompozisyon dosyası, birden fazla konteyner için hizmetler tanımlayabilir. Bu hizmetler, ilgili konteynerlar için yapılandırma bilgileri, görüntü adları, ağ yapılandırmaları vb. gibi bilgileri içerir.

Ayrıca, Docker Compose'un sağladığı komutlar kullanılarak, konteynerlar başlatılabilir, durdurulabilir veya silinebilir. Örneğin, docker-compose up komutu, belirtilen hizmetleri oluşturur ve başlatır. docker-compose stop komutu, hizmetleri durdurur ve docker-compose down komutu, hizmetleri siler.

Bu şekilde, kompozisyon dosyaları sayesinde Docker konteynerları bir arada çalışabilir ve proje içinde düzgün bir yapılandırma sağlanabilir. Bu da kod geliştirme ve uygulamanın dağıtımı için büyük bir kolaylık sağlar.