Tossapon Nuanchuay
ntossapo
Published in
1 min readJul 29, 2016

--

Mongo บน docker ง่ายๆ

ขณะทำโปรเจคอยู่เกิดปัญหาที่ว่า query ของ mongodb มันเยอะเกินไป
ทั้ง read ทั้ง write ในโปรเจคมีสูงมาก เพราะทำงานพร้อมๆ กันประมาณ 60 thread / 60 session
เลยไปลองทำ shard บน mongo แก้ปัญหาแบบ vertical
ยังไม่เสร็จหรอกครับ การ config ค่อนข้างยากต้องใช้ประมาณ 6 node เป็นอย่างต่ำ
หาไม่ได้หรอกครับ 6 node เลยใช้ docker-machine และมีรายละเอียดเยอะมาก

วันนี้เลยขอเสนอการใช้ mongo บน docker

อันดับแรกคือเรื่องต้องมี docker ก่อน โดยผมทำงานบน window
ขั้นแรกคือ สร้างเครื่อง server ขึ้นมาก่อน
docker-machine create -d virtualbox node1

ลอง docker-machine ls ดูก็จะปรากฏ เครื่องของเรา
เราจะ ssh เข้าไปใช้ได้โดยการ
docker-machine ssh node1

set environment โดยการ
docker-machine env node1 | Invoke-Expression
ลักษณะเหมือนกับ เรากำลังควบคุม node1

จากนั้นติดตั้ง pull mongo image ลงมาก่อน
docker pull mongo
รอสักแปปก็เสร็จครับ
ลอง docker images
ก็จะเห็น image mongo ที่ pull ลงมา

จากนั้น start mongodb server โดยใช้คำสั่ง
docker --name node1-mongo -p 27017:27017 --rm mongo sh -c "mkdir /mongo; mongod --dbpath /mongo"

อธิบายนิดนึงครับ
–name คือชื่อ container ใหม่ครับ
-p คือ port ที่เรา foward ให้ ระหว่าง machine นั้นและ container นั้น
–rm คือลบอันเก่าออกถ้ามีอยู่แล้ว
mongo อันนี้ คือ imager ที่เรา run ครับ
sh -c “commmand” อันนี้คือ รันแบบ command ครับ
mkdir /mongo อันนี้คือ สร้าง folder ไว้ที่ / เอาไว้เก็บข้อมูล
mongod อันนี้คือ run mongo daemon ทั่วไป
–dbpath อันนี้คือ จะเอาข้อมูลไว้ที่ไหน

mongodb --dbpath
อันนี้เป็น command ทั่วไปที่ใช้ในการ run mongo daemon

อ่าเสร็จแล้วครับลองเข้าไปใช้งานโดยการ
mongo --host

ไม่กี่ขั้นตอนก็ได้ใช้งาน mongodb แล้วครับ
ของผมที่กำลังทำตอนนี้ต้องทำ clustering ด้วย ยากไปอีกแบบ
วันนี้ขอพอแค่นี้ก่อน ขอบคุณครับ

Originally published at www.ntossapo.me on July 29, 2016.

--

--