mongodb 是最流行的文档数据库,目前最新版本是 5.0,我们用上一个版本 4.4
首先拉取 mongodb 的官方镜像:
$ docker pull mongo:4.4
然后在宿主环境中创建两个目录,作为容器数据卷:
/docker/mongodb/data/ #数据库数据目录/docker/mongodb/dump/ #备份数据目录
然后作为一个容器运行:
$ docker run --name mongodb \--restart=always \-p 27017:27017 \-v /data/docker/mongodb/data:/data/db \-v /data/docker/mongodb/dump:/var/dump \-d mongo:4.4 --auth
运行成功后,我们进入容器:
$ docker exec -it <container_id> /bin/bash$ mongo # 进入数据库,不需要用户名
切换到 admin 数据库,并创建用户:
use admindb.createUser({user:'root',pwd:'bigger_frontend_mongo',roles:[{role:'root',db:'admin'}]})
接下来就可以用这个账户连接数据库了。
新建 stack.yml
:
version: '3.1'services:mongo:image: mongo:4.4restart: alwaysenvironment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: bigger_frontend_mongomongo-express:image: mongo-expressrestart: alwaysports:- 8081:8081environment:ME_CONFIG_MONGODB_ADMINUSERNAME: admin_mongoME_CONFIG_MONGODB_ADMINPASSWORD: bigger_mongo_passME_CONFIG_MONGODB_URL: mongodb://root:bigger_frontend_mongo@mongo:27017/
未开启授权验证时连接 mongodb 的 url 是:
mongodb://127.0.0.1:27017
开启之后的 url 是:
mongodb://user:pass@127.0.0.1:27017/dbname