Replica Set yaklaşımının yapılması için gerekli mongo image
194
İ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 etiketlere GitHub üzerinden erişebilirsiniz:
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!
Content type
Image
Digest
Size
127.3 MB
Last updated
almost 11 years ago
docker pull kodcu/mongo:3.2