在切換一次開發平台,就要重新設定一次資料庫是 件很麻煩的事情
如果可以用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…),也只需要把目錄掛載上去就可以搬移
誠心推薦各位嘗試這個方法