docker搭建mongodb

  1. 查找并拉取镜像

    docker search mongo
    docker-tags --images mongo --nums 10
    docker pull mongo:latest
  2. 创建网络,固定ip

    docker network create --driver=bridge --subnet=172.18.12.0/24 mongodbnet
    docker network ls
    docker network inspect mongodbnet
  3. 创建 volume

    docker volume create mongo-data
    docker volume create mongo-cluster
    docker volume ls
  4. 创建容器

    docker run -id --name=mongodb -v mongo-data:/data/db -v mongo-cluster:/data/configdb -p 27017:27017 -e LANG=C.UTF-8 --network=mongodbnet --ip 172.18.12.5  mongo --auth
  5. 进入容器

    docker exec -it mongodb bash
  6. 容器内修改配置,允许任何ip连接

    vim /etc/mongod.conf.orig
    #
    bindIp: 0.0.0.0
  7. 创建超级用户+普通用用户
    具体分成两步:

    mongosh

    创建管理员用户:

    use admin
    db.createUser(
      {
        user:"root",
        pwd:"123456",
        roles:[{role:"root",db:"admin"}]
      }
      )

    创建数据库:
    创建数据库用户:

    use stocklist
    db.createUser(
     {
       user: "frank",
       pwd: "123456",
       roles: ["readWrite"]
     }
     ) 

    查看用户信息:

    db.auth("root","123456")
    db.getUsers()

    创建读写全部数据库的用户:

    db.createUser({
      user: "manman",
      pwd: "123456",
      roles: [
     { role: "readWriteAnyDatabase", db: "admin" }
      ]
    })
  8. 使用mongdodb-compass连接

    mongodb://frank:123456@172.18.12.5:27017/stocklist

    docker设置不使用sudo

    1. 查看docker分组是否存在

      cat /etc/group | grep docker 
    2. 将用户添加到docker分组

      sudo usermod -aG docker your_username

    mongodb常用命令

    1. 更改密码

      use stock
      db.changeUserPassword("frank","frank")

frank
1 声望0 粉丝