Docker-MongoDB

在切換一次開發平台,就要重新設定一次資料庫是 件很麻煩的事情
如果可以用docker來進行部署的話,可以解決掉大部分在不同平台、作業系統、版本帶來的奇妙bug

以下是使用docker部署MongoDB的方法
需要熟悉下列docker常用到的功能

  • volume
  • network
  • environment

具體步驟如下

docker run --name mongodb \
-e MONGO_INITDB_ROOT_USERNAME=<USERNAME> \ 
-e MONGO_INITDB_ROOT_PASSWORD=<PASSWORD> \ 
-v /mnt/mongodb:/data/db \ 
--network mongo-network \ 
-p 27017:27017 
-d \ 
mongo:latest

MONGO_INITDB_ROOT_USERNAME > root 帳戶名稱
MONGO_INITDB_ROOT_PASSWORD > root 密碼
–network
是選用的功能,如果有需要架設web service、GUI管理程式的話,會需要在同一個docker 網路之下

MongoExpress

如果你需要GUI來管理資料庫的話,這邊可以推薦給你一個透過網頁運作的程式,也一樣可以用docker來部署
一樣,指令我放在下面

docker run --name mongo_express  \ 
--network mongo-network \ 
-e ME_CONFIG_MONGODB_SERVER=mongodb \ 
-e ME_CONFIG_MONGODB_ADMINUSERNAME=<USERNAME> \ 
-e ME_CONFIG_MONGODB_ADMINPASSWORD=<PASSWORD> \
-e ME_CONFIG_BASICAUTH_USERNAME=<USERNAME> \ 
-e ME_CONFIG_BASICAUTH_PASSWORD=<PASSWORD> \ 
-p 8081:8081 \ 
-d \ 
mongo-express:latest

這邊要注意,如果要使用MongoExpress來管理MongoDB的話,需要先建立一個network,且這兩個container都需要在這個network底下

ME_CONFIG_MONGODB_ADMINUSERNAME
ME_CONFIG_MONGODB_ADMINPASSWORD
指的是MongoDB的root帳號密碼

ME_CONFIG_BASICAUTH_USERNAME
ME_CONFIG_BASICAUTH_PASSWORD
這邊是在進入MongoExpress網頁時的帳號密碼

兩個參數是有區別的,記得不要搞混了

透過docker來使用Mongo DB真的方便非常多,省去了很多不同作業系統以及版本上的問題
往後若是有需要遷移到其他平台的需求(i.e. Amazon、GCP、Win > Linux…),也只需要把目錄掛載上去就可以搬移
誠心推薦各位嘗試這個方法

Scroll to Top