docker mongo建立一個新資料庫幷包含使用者名稱密碼
阿新 • • 發佈:2022-04-15
使用docker mongo建立一個新資料庫幷包含使用者名稱密碼(方式二)
有時在測試或新建測試專案後,需要一個簡易的 mongo 資料庫並帶使用者名稱和密碼。 如果使用 mongo 語法命令會比較麻煩,主要目的是測試,重點不在 mongo 資料庫的搭建上,這時使用 docker 就非常方便實現目標
- mongo 資料庫的管理賬號: root 管理密碼: root
- 新建一個mongo 資料庫,資料庫名: JJ
- 剛新建的資料庫的賬號: cms 密碼: hello123456===
- mongo db 的埠號: 27017
- 以上密碼 在版本控制器之外,獨立出來
組織結構
1 |
. |
檔案內容
docker-compose.yml
1 |
version: '3.1' |
init-mongo.sh
1 |
mongo -- "$MONGO_INITDB_DATABASE" <<EOF |
dev.env
1 |
# define env var default value. |
我的 ubuntu 裡設定了系統環境變數 NODE_ENV=dev, 所以執行的時候就會取 dev.env 檔案
檢查配置
1
|
docker-compose config
|
執行
1
|
docker-compose up
|
刪除
1
|
docker-compose rm -f mongo_server
|
測試
可以使用 Studio 3T for mongoDB 進行連線測試
延申思考
init-mongo.sh 是mongo首次啟動執行的指令碼.那麼如果需要初始化一些 mongo 基礎資料表, 是不是不遠了?
補充
配置不同場景下的環境變數
從這兩中的方式中我們可以看到,docker compose 提供了足夠的靈活性來讓我們設定 docker-compose.yml 檔案中引用的環境變數,它們的優先順序如下:
- Compose file
- Shell environment variables
- Environment file
- Dockerfile
- Variable is not defined
首先,在 docker-compose.yml 檔案中直接設定的值優先順序是最高的。
然後是在當前 shell 中 export 的環境變數值。
接下來是在環境變數檔案中定義的值。
再接下來是在 Dockerfile 中定義的值。
最後還沒有找到相關的環境變數就認為該環境變數沒有被定義。