docker 運行MongoDB 極限簡潔教程


不使用compose

  • 創建volume docker volume create --name = mongodata 其中mongodata是自定義的volume name
  • 查看volume docker volume ls
  • 查看volume具體內容 docker volume inspect <Volume Name> 其中Volume Name 可以通過上一條查看到
  • 在docker 容器中運行 mongodb docker run --name mongodb -v mongodata:/data/db -d -p 27017:27017 mongo --name 設置了一個容器名稱,-v 掛載創建好的volume到容器內的某個路徑(映射),-d 是detached模式運行
  • 查看容器 docker ps -a
  • 進入容器,運行shell docker exec -ti mongodb mongo 其中mongodb 是容器名 ,mongo 是要運行的命令 (會跳出一個mongo shell)
  • mongo shell 中的一些命令
    • show dbs
    • use mydb 創建一個數據庫並切換到mydb
    • show collections (表)
    • db.devices.insertOne(...) 創建一個 devices table 然后插入一些東西。。。
  • 停止容器 docker stop <hash or container name>
  • 重啟容器 docker start <hash or container name>

以上內容經過測試 絕對好用,雖然第一項就有一個 錯誤,但是我不改,就是玩。20220208 (--name =mongodata 中間的=號現在不樣用了)

使用compose

注意,compose 自己就能創建一個 common network ,如果使用命令行,還有連接多個容器到一個網絡的需求,要自己做設定,但是這里不介紹了

如果有需要,看這個 [中英字幕] Docker and Kubernetes(K8s) 初學者教程

version: '3'

services:
    mongo:
        image: mongo
        environment:
            - MONGO_INITDB_ROOT_USERNAME=${MONGO_ROOT_USER}
            - MONGO_INITDB_ROOT_PASSWORD=${MONGO_ROOT_PASSWORD}
            - MONGO_INITDB_DATABASE=project
        volumes:
          -  mongo-data:/data/db
    mongo-express:
        image: mongo-express
        environment:
            - ME_CONFIG_MONGODB_SERVER=mongo
            - ME_CONFIG_MONGODB_PORT=27017
            - ME_CONFIG_MONGODB_ENABLE_ADMIN=false
            - ME_CONFIG_MONGODB_AUTH_DATABASE=admin
            - ME_CONFIG_MONGODB_AUTH_USERNAME=${MONGO_ROOT_USER}
            - ME_CONFIG_MONGODB_AUTH_PASSWORD=${MONGO_ROOT_PASSWORD}
            - ME_CONFIG_BASICAUTH_USERNAME=${MONGOEXPRESS_LOGIN}
            - ME_CONFIG_BASICAUTH_PASSWORD=${MONGOEXPRESS_PASSWORD}
        depends_on:
            - mongo
        ports:
          - "8888:8081"
        depends_on:
          - mongo
volumes:
  mongo-data:
    driver: local
## 這是.env
MONGO_ROOT_USER=devroot
MONGO_ROOT_PASSWORD=devroot
MONGOEXPRESS_LOGIN=dev
MONGOEXPRESS_PASSWORD=dev
  • 使用docker-compose docker-compose -f docker-compose.yaml up -f代表要使用一個文件 up 指 start
  • 停止compose后的容器 docker-compose -f docker-compose.yaml down

以上的內容應該能幫助你

  • 使用volume 來持久化 mongodb的數據
  • 使用mongo-express 來作為用戶界面 查看MongoDB中的數據
  • 注意 ME_CONFIG_MONGODB_ENABLE_ADMIN=false ,這樣一定程度上保護了數據庫的安全性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM