美文网首页
docker 安装开发环境 - (5)安装mongodb

docker 安装开发环境 - (5)安装mongodb

作者: 良人与我 | 来源:发表于2019-04-28 14:54 被阅读0次

    进入容器

    [penglai@bogon ~]$ sudo docker ps
    [sudo] password for penglai: 
    CONTAINER ID        IMAGE                               COMMAND             CREATED             STATUS              PORTS                                                                                              NAMES
    3a958e106be4        river/centos-mysql-redis-rabbitmq   "init"              43 minutes ago      Up 43 minutes       0.0.0.0:3306->3306/tcp, 0.0.0.0:5672->5672/tcp, 0.0.0.0:6379->6379/tcp, 0.0.0.0:15672->15672/tcp   friendly_leakey
    [penglai@bogon ~]$ sudo docker exec -it 3a958e106be4 bash
    [root@3a958e106be4 /]# 
    

    安装mongo

    创建文件

    vi /etc/yum.repos.d/mongodb-org-4.0.repo
    
    [mongodb-org-4.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
    

    安装命令

    yum install -y mongodb-org

    修改外网可以访问

    配置文件位置 /etc/mongod.conf
    将net:bindIp: 127.0.0.1 改为 0.0.0.0

    启动服务

    systemctl start mongod         #启动服务
    systemctl ennable mongod   #设置开机自动启动
    

    生成docker image

    docker commit -m="has mysql" -a="river" 3a958e106be4 river/centos5
    docker stop 3a958e106be4
    

    启动新的docker

    docker run -itd --privileged=true -p 3306:3306 -p 6379:6379 -p 5672:5672 -p 15672:15672 -p 27017:27017 river/centos5 init
    sudo docker exec -it b6250d32c91a bash  #进入docker
    

    通过用工具链接测试

    image.png

    显示已经ok 了。

    设置用账号登录

    配置文件修改如下


    image.png

    重启服务

    [root@b6250d32c91a /]# systemctl restart mongod
    

    登录mongo

    [root@b6250d32c91a /]# mongo
    

    创建root用户

    use admin   //切换到 admin仓库
    db.createUser({user:'root',pwd:'root',roles:['userAdminAnyDatabase']})     //创建root用户
    show dbs   // 提示错误   command listDatabases requires authentication  需要认证
    db.auth('root','root')    //认证
    

    创建普通用户

    >use mydb
    > db.createUser({user:'river',pwd:'123456',roles:['readWrite']})
    Successfully added user: { "user" : "river", "roles" : [ "readWrite" ] }
    > db.auth("river","123456")
    

    如果提示认证用户太多的话,退出重新登录

    [root@b6250d32c91a /]# mongo --port 27017 -u "river" -p "123456" --authenticationDatabase "mydb"
    

    再通过客户端链接

    image.png

    查看下 user信息,有时候这里配置不对用户访问会出问题

    [root@b6250d32c91a /]# mongo --port 27017 -u "admin" -p "123456" --authenticationDatabase "admin"                 
    MongoDB shell version v4.0.9
    connecting to: mongodb://127.0.0.1:27017/?authSource=admin&gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("7a2b6f48-f1f9-4c05-a7d3-81929090040d") }
    MongoDB server version: 4.0.9
    > use admin
    switched to db admin
    > show users
    {
            "_id" : "admin.admin",
            "userId" : UUID("e6d53075-699c-46e8-9f89-9258608c3be5"),
            "user" : "admin",
            "db" : "admin",
            "roles" : [
                    {
                            "role" : "userAdminAnyDatabase",
                            "db" : "admin"
                    },
                    {
                            "role" : "readWriteAnyDatabase",
                            "db" : "admin"
                    }
            ],
            "mechanisms" : [
                    "SCRAM-SHA-1",
                    "SCRAM-SHA-256"
            ]
    }
    > user weimall
    2019-04-28T13:38:34.152+0000 E QUERY    [js] SyntaxError: missing ; before statement @(shell):1:5
    > use weimall
    switched to db weimall
    > show users
    {
            "_id" : "weimall.penglai",
            "userId" : UUID("ce8a8ee8-fbed-4e25-a231-69f513ac00c0"),
            "user" : "penglai",
            "db" : "weimall",
            "roles" : [
                    {
                            "role" : "readWrite",
                            "db" : "weimall"
                    }
            ],
            "mechanisms" : [
                    "SCRAM-SHA-1",
                    "SCRAM-SHA-256"
            ]
    }
    > 
    

    ok 这样就设置成了。
    可以生成自己的docker image 了

    设置mongo 开机自启动

    systemctl enable mongod.service
    

    参考地址
    https://segmentfault.com/a/1190000016877915
    https://my.oschina.net/u/3939059/blog/1933194
    https://www.jianshu.com/p/79caa1cc49a5

    相关文章

      网友评论

          本文标题:docker 安装开发环境 - (5)安装mongodb

          本文链接:https://www.haomeiwen.com/subject/aknrnqtx.html