使用docker mongo創建一個新數據庫並包含用戶名密碼(方式二)
實現目標
- 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 中定義的值。
最后還沒有找到相關的環境變量就認為該環境變量沒有被定義。