快速搭建Docker版MongoDB脚本

快速搭建Docker版MongoDB脚本

今天继续分享快速搭建MongoDB数据库脚本。

部署说明

创建目录

mkdir -p ./mongodbdata/mongo_data

初始化脚本

$ vim ./mongodbdata/mongo-init.sh

mongo -- "$MONGO_INITDB_DATABASE" <<EOF
db = db.getSiblingDB('admin')
db.auth('$MONGO_INITDB_ROOT_USERNAME', '$MONGO_INITDB_ROOT_PASSWORD')
db = db.getSiblingDB('$MONGO_INITDB_DATABASE')
db.createUser({
  user: "$MONGO_USERNAME",
  pwd: "$MONGO_PASSWORD",
  roles: [
  { role: 'readWrite', db: '$MONGO_INITDB_DATABASE' }
  ]
})
EOF

编写docker-compose.yml

注意要使用image: mongo:5.0.13,如果不加5.0.13则默认用最新镜像,容器里面没有自带mongo二进制文件,这样会导致初始化用户失败。

version: '3.8'
services:
    db:
        restart: always
        image: mongo:5.0.13
        container_name: mongodb-container
        ports:
            - '27017:27017'
        command: [--auth]
        environment:
            MONGO_INITDB_ROOT_USERNAME: root
            MONGO_INITDB_ROOT_PASSWORD: Testerzhang
            MONGO_INITDB_DATABASE: testerzhang
            MONGO_USERNAME: testerzhang
            MONGO_PASSWORD: Testerzhang
        volumes:
            - ./mongodbdata/mongo_data:/data/db
            - ./mongodbdata/mongo-init.sh:/docker-entrypoint-initdb.d/mongo-init.sh

如果需要mongo4.x的,改成image: mongo:4.4.17即可。

运行

docker-compose up -d

填坑

之前没加版本号,默认是拉取最新镜像,导致初始化新用户跑不了,耽误了不少时间,还是指定下版本稳妥很多了。


本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!

欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。

公众号二维码

updatedupdated2022-11-242022-11-24