zoukankan      html  css  js  c++  java
  • Docker搭建MongoDB

    前置条件:

    64-bit 系统
    kernel 3.10+
    1.检查内核版本,返回的值大于3.10即可。官方文档要求Linux kernel至少3.8以上,且docker只能运行在64位的系统中。

    [root@Slave ~]# uname -r
    3.10.0-327.el7.x86_64
    [root@Slave ~]# getconf LONG_BIT
    64

    查看内核是否支持aufs
    [root@Slave ~]# grep aufs /proc/filesystems
    [root@Slave ~]# yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm
    [root@Slave ~]# service docker start

    1、搜索mongo
    [root@Slave tmp]# cd /tools/
    [root@Slave tools]# docker search mongo
    INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
    docker.io docker.io/mongo MongoDB document databases provide high av... 7175 [OK]
    docker.io docker.io/mongo-express Web-based MongoDB admin interface, written... 773 [OK]
    docker.io docker.io/tutum/mongodb MongoDB Docker image – listens in port 270... 229 [OK]
    docker.io docker.io/bitnami/mongodb Bitnami MongoDB Docker Image 127 [OK]
    docker.io docker.io/mongoclient/mongoclient Official docker image for Mongoclient, fea... 89 [OK]
    docker.io docker.io/mongooseim/mongooseim Small docker image for MongooseIM - robust... 19
    docker.io docker.io/cvallance/mongo-k8s-sidecar Kubernetes side car to setup and maintain ... 18 [OK]
    docker.io docker.io/frodenas/mongodb A Docker Image for MongoDB 18 [OK]
    docker.io docker.io/arm64v8/mongo MongoDB document databases provide high av... 10
    docker.io docker.io/centos/mongodb-32-centos7 MongoDB NoSQL database server 8
    docker.io docker.io/circleci/mongo CircleCI images for MongoDB 8 [OK]
    docker.io docker.io/webhippie/mongodb Docker images for MongoDB 7 [OK]
    docker.io docker.io/centos/mongodb-36-centos7 MongoDB NoSQL database server 6
    docker.io docker.io/istepanov/mongodump Docker image with mongodump running as a c... 6 [OK]
    docker.io docker.io/centos/mongodb-26-centos7 MongoDB NoSQL database server 5
    docker.io docker.io/eses/mongodb_exporter mongodb exporter for prometheus 4 [OK]
    docker.io docker.io/neowaylabs/mongodb-mms-agent This Docker image with MongoDB Monitoring ... 4 [OK]
    docker.io docker.io/centos/mongodb-34-centos7 MongoDB NoSQL database server 3
    docker.io docker.io/andreasleicher/mongo-azure-backup a docker container to backup a mongodb usi... 2 [OK]
    docker.io docker.io/ansibleplaybookbundle/mongodb-apb An APB to deploy MongoDB. 1 [OK]
    docker.io docker.io/ekesken/mongo docker image for mongo that is configurabl... 1 [OK]
    docker.io docker.io/openshift/mongodb-24-centos7 DEPRECATED: A Centos7 based MongoDB v2.4 i... 1
    docker.io docker.io/ccitest/mongo CircleCI test images for Mongo 0 [OK]
    docker.io docker.io/martel/mongo-replica-ctrl A dockerized controller for a Mongo db rep... 0 [OK]
    docker.io docker.io/phenompeople/mongodb MongoDB is an open-source, document datab... 0 [OK]
    [root@Slave tools]#

    2、拉取mongo【这里默认为latest】
    [root@Slave tools]# docker pull mongo
    Using default tag: latest
    Trying to pull repository docker.io/library/mongo ...
    latest: Pulling from docker.io/library/mongo
    5d9821c94847: Pull complete
    a610eae58dfc: Pull complete
    a40e0eb9f140: Pull complete
    3242ba6cef1f: Pull complete
    8ade7416f0cf: Pull complete
    cd8d2aab224e: Pull complete
    9d8c2ff7f392: Pull complete
    d29b99c4ab4c: Pull complete
    5d1ed7c1266e: Pull complete
    77f31d60b382: Pull complete
    e328c48077a2: Pull complete
    31085c577c4a: Pull complete
    Digest: sha256:ebcdb042054d9974c8c3160d761b0bdb39b55115448242de1a5161c124ddb0af
    Status: Downloaded newer image for docker.io/mongo:latest
    [root@Slave tools]#

    3、查看本地镜像
    [root@Slave tools]# docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    busybox v3 08dfcb299a86 20 hours ago 1.23 MB
    docker.io/mongo latest 50e17a9fdd96 5 days ago 492 MB
    docker.io/busybox latest 6858809bf669 13 days ago 1.23 MB
    docker.io/tomcat 8.0 ef6a7c98d192 2 years ago 356 MB
    [root@Slave tools]#

    4、启动容器【就是安装,-v后面的参数表示把数据文件挂载到宿主机的路径,-p把mongo端口映射到宿主机的指定端口,--auth表示连接mongodb需要授权】
    [root@Slave tools]# docker run -p 27017:27017 -v /tmp/db:/data/db -d mongo
    896f0b4d59959d0cc6ec1ab196008c4fcc0320da0f2acf76b0c9aa5ed32f0e3b
    [root@Slave tools]#

    5、查看运行中的容器
    [root@Slave tools]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    896f0b4d5995 mongo "docker-entrypoint..." 15 seconds ago Up 14 seconds 0.0.0.0:27017->27017/tcp sad_swartz
    930fbd523c13 tomcat:8.0 "catalina.sh run" 22 hours ago Up 21 hours 0.0.0.0:8888->8080/tcp tomcat
    [root@Slave tools]#

    6、进入mongo【以 admin 用户身份进入mongo,相当于oracle的用户也就是库,mysql的库】,896f0b4d5995 镜像仓库id
    [root@Slave tools]# docker exec -it 896f0b4d5995 mongo admin
    MongoDB shell version v4.4.1
    connecting to: mongodb://127.0.0.1:27017/admin?compressors=disabled&gssapiServiceName=mongodb
    Implicit session: session { "id" : UUID("b7bcaa79-f6e3-449e-b455-b7459c926878") }
    MongoDB server version: 4.4.1
    Welcome to the MongoDB shell.
    For interactive help, type "help".
    For more comprehensive documentation, see
    https://docs.mongodb.com/
    Questions? Try the MongoDB Developer Community Forums
    https://community.mongodb.com
    ---
    The server generated these startup warnings when booting:
    2020-09-22T03:22:49.272+00:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
    2020-09-22T03:22:49.273+00:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
    2020-09-22T03:22:49.273+00:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
    ---
    ---
    Enable MongoDB's free cloud-based monitoring service, which will then receive and display
    metrics about your deployment (disk utilization, CPU, operation statistics, etc).

    The monitoring data will be available on a MongoDB website with a unique URL accessible to you
    and anyone you share the URL with. MongoDB may use this information to make product
    improvements and to suggest MongoDB products and deployment options to you.

    To enable free monitoring, run the following command: db.enableFreeMonitoring()
    To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
    ---
    >

    7、创建一个 admin 管理员账号
    > db.createUser({ user: 'admin', pwd: '123789654', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
    Successfully added user: {
    "user" : "admin",
    "roles" : [
    {
    "role" : "userAdminAnyDatabase",
    "db" : "admin"
    }
    ]
    }
    >

    8、对 admin 进行身份认证
    > db.auth("admin","123789654");
    1
    > show databases;
    admin 0.000GB
    config 0.000GB
    local 0.000GB
    >

    MongoDB 创建数据库
    语法
    MongoDB 创建数据库的语法格式如下:

    use DATABASE_NAME
    如果数据库不存在,则创建数据库,否则切换到指定数据库。

    实例
    以下实例我们创建了数据库 runoob:
    > use runoob
    switched to db runoob
    > db
    runoob
    >

  • 相关阅读:
    AcWing 157. 树形地铁系统 (hash判断树同构)打卡
    AcWing 156. 矩阵 (哈希二维转一维查询)打卡
    AcWing 144. 最长异或值路径 01字典树打卡
    AcWing 143. 最大异或对 01字典树打卡
    AcWing 142. 前缀统计 字典树打卡
    AcWing 139. 回文子串的最大长度 hash打卡
    AcWing 138. 兔子与兔子 hash打卡
    常用C库函数功能及用法
    编程实现C库函数
    C语言面试题5
  • 原文地址:https://www.cnblogs.com/zhangkaimin/p/13791385.html
Copyright © 2011-2022 走看看