Docker 搭建 MongoDB

邢闖洋發表於2020-09-07

編寫 docker-compose.yml

version: "3"
services:
  mongodb:
    image: mongo:4.1
    container_name: mongodb
    environment:
      MONGO_INITDB_ROOT_USERNAME: "root"
      MONGO_INITDB_ROOT_PASSWORD: "123456"
      TZ: "Asia/Shanghai"
    # 不可以對映目錄的原因
    # https://www.jianshu.com/p/2757c19ba9a5
    # https://blog.csdn.net/u013506207/article/details/95524335
    volumes:
      - /root/docker/mongodb/data/mongo:/data/db:rw
      - /root/docker/mongodb/data/mongo_key:/mongo:rw
    ports:
      - "27017:27017"
    networks:
      - default
    command:
      --auth

這裡需要注意,如果再用 WinDocker 來搭建 MongoDB 的話,是不可以對映目錄的,不可以對映的原因也寫在了 docker-compose.yml

最好是將資料目錄掛載設定好,防止刪除容器的話造成資料丟失

然後我們執行

docker-compose up -d

就會下載映象然後啟動容器了。

需要注意的是當容器啟動後我們想要修改 MongoDB 的使用者名稱密碼就不可以在 docker-compose.yml 檔案中修改了,需要進到 MongoDB 容器中去資料庫修改,因為 docker-compose.yml 裡的使用者名稱密碼變數在第一次啟動容器時只是為你建立了一條使用者,但每次重啟時並不會為你更新使用者資訊,具體操作如下

#1、我們先進入容器內
docker exec -it mongodb bash
#2、我們登陸 mongo 資料庫
mongo
use admin
db.auth("root", "123456")
#這時候已經登陸進來了,我們可以檢視到所有在 admin 資料庫中的集合, 
show collections
#也可以檢視我們所有的系統使用者
db.system.user.find()
#修改使用者密碼
db.updateUser("lutai", {pwd: "654321"}))
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章