Sign inSign up

kodcu/mongo

By kodcu

•Updated almost 11 years ago

Replica Set yaklaşımının yapılması için gerekli mongo image

Image
1

194

kodcu/mongo repository overview

⁠MongoDB : Docker

İstenenler doğrultusunda Dockerfile komutlarının okunmasıyla replica set yaklaşımı için gerekli imaj oluşturulacak. Ayrıca bu repo bind-mount volume yaklaşımının nasıl yapıldığını da uygulamalı anlatmaktadır. Ubuntu üzerine mongodb:3.0.7 ve mongodb:3.2 ile birlikte gerekli diğer detaylarla oluşturulan image'lere sahibiyiz. Bir mongodb sunucusunu çalıştırmak (daha doğrusu bir container çalıştırmak) için config dosyasını host tarafından hedefteki container'daki belirtilen volume noktasına eşlenmesi gerekmektedir.

⁠Mevcut Etiketler

Mevcut etiketlere GitHub⁠ üzerinden erişebilirsiniz:

⁠Volume Noktasının Anlatımı

Eğer dockerfile dosyalarını incelerseniz versiyon gözetmeden görüceksiniz ki ENTRYPOINT noktasında mongod sunucusu home/kodcu/mongod/mongod.conf dosyasını istemektedir. Bu dosya Dockerfile ile gelmemekte yani image'in içerisinde bu dosya yok! Bu dosyayı sisteminizdeki bir dizinden container'a bind mount volume tekniğini uygulayarak /home/kodcu/mongod dizinine birebir aynısının yerleştirilmesini sağlamanız gerekmektedir. Örneğin windows sisteminde şu dizinde C:\Users\Hakan\Desktop\config\mongod.conf bir config dosyamız mevcut ve içeriği şu şekilde:

# mongod.conf
# Where and how to store data.
storage:
  dbPath: /data/db
  directoryPerDB: true
  journal:
    enabled: true
  engine: wiredTiger

# where to write logging data.
systemLog:
  destination: file
  logAppend: false
  path: /data/log/mongod.log

# network interfaces
net:
  port: 27017

processManagement:
  pidFilePath: /data/log/mpid.pid

security:
  keyFile: /data/log/mongod.keyfile
  clusterAuthMode: keyFile
  authorization: enabled

replication:
  replSetName: kodcu

Diyelim 3.2 versiyonuna ait İmage'i çektikten sonra docker pull kodcu/mongo:3.2 uygulamayı volume noktasıyla çalıştırmak istiyorsunuz. Yapılması gereken yukarıda gösterdiğimiz dizinleri birbirlerine bağlamak olacak yani container'daki dizinin bulunduğunu nokta volume noktası olacak ve host (windows) sisteminde bulunan dosya volume noktasına kopyalanacak:

docker run -d --name mongo1 -P -v //c/Users/Hakan/Desktop/config:/home/kodcu/mongod kodcu/mongo:3.2

Eğer docker ps dediğimizde çalışan mongo1 isminde bir container mevcutsa her şey istendiği gibi çalışmaktadır denebilir. Bu container'ın yani mongod sunucumuzu (kendi yaptığımız uygulamamızın) içine girip gerçekten bu mongod.conf dosyası nı kontrol etmek istiyorsanız tek yapmanız gereken bu çalışan uygulamanın (yani container'ın) içine sanal bash terminali ile girerek bakmak olacaktır. Onun için yapılması gereken işlemler şunlar:

docker exec -it mongo1 bash
kodcu@1293sdj123: cat home/kodcu/mongod/mongod.conf

Container modülleriyle ilgili unutulmaması gereken : Bir container her zaman ama her zaman tek bir amaç için kullanılmalıdır! ve bir container'ı çalışır tutacak komut(lar) başlangıç noktasında genelde belirtilmelidir!

Tag summary

Content type

Image

Digest

Size

127.3 MB

Last updated

almost 11 years ago

docker pull kodcu/mongo:3.2