背景 mongodb 是一个非常通用的文档型数据库,在后端开发过程中经常被用到。为了能够更好地掌握 mongodb,我们需要一套快速可使用的环境,用于开发、测试等。
基本形态 调研 通过在 dockerhub 上搜索 mongodb,发现有大量的镜像提供者。看到 mongo 官方的镜像 和 bitnami 提供的镜像 使用量最大,考虑到 bitnami 生态更加完善,因此选择 bitnami/mongodb 作为镜像。
搭建过程 docker 拉镜像 1 docker pull bitnami/mongodb:6.0
直接通过 docker 运行 1 2 # 创建网桥 docker network create mongonet --driver bridge
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 docker run -d \ -e ALLOW_EMPTY_PASSWORD=yes \ -e MONGODB_EXTRA_FLAGS='--wiredTigerCacheSizeGB=2' \ -e MONGODB_ENABLE_JOURNAL=true \ -e MONGODB_ROOT_PASSWORD=password123 \ -e MONGODB_USERNAME=testuser \ -e MONGODB_PASSWORD=123456 \ -e MONGODB_DATABASE=testdb \ -e MONGODB_REPLICA_SET_MODE=primary \ -e MONGODB_REPLICA_SET_NAME=testreplicaset \ -e MONGODB_PORT_NUMBER=27017 \ -v /data/mongotest:/bitnami/mongodb \ -v /data/mongotest/init:/docker-entrypoint-initdb.d \ --name mongomaster \ --network mongonet \ -p 27017:27017 \ bitnami/mongodb:6.0
配置 docker-compose.yaml 文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 version: '3.3' networks: mongonet: driver: bridge services: mongodb: image: docker.io/bitnami/mongodb:6.0 ports: - '27017:27017' volumes: - '/data/mongotest:/bitnami/postgresql' - '/data/mongotest/init:/docker-entrypoint-initdb.d' environment: - 'ALLOW_EMPTY_PASSWORD=yes' - 'MONGODB_EXTRA_FLAGS="--wiredTigerCacheSizeGB=2"' - 'MONGODB_ENABLE_JOURNAL=true' - 'MONGODB_ROOT_PASSWORD=password123' - 'MONGODB_USERNAME=testuser' - 'MONGODB_PASSWORD=123456' - 'MONGODB_DATABASE=testdb' - 'MONGODB_REPLICA_SET_MODE=primary' - 'MONGODB_REPLICA_SET_NAME=testreplicaset' - 'MONGODB_PORT_NUMBER=27017' networks: - mongonet
k8s charts 同样选择 bitnami 的库。
helm 下载及安装可以查看 postgresql实验环境搭建
查看 charts 1 2 helm fetch bitnami/mongodb --untar
修改mongodb密码等基本信息 1 2 3 4 5 6 7 8 auth: enabled: true rootUser: root rootPassword: "123456" usernames: ["testuser" ] passwords: ["123456" ] databases: ["testdb" ]
更详细的配置,可以参考 bitnami 的 github
部署 修改 service 1 2 3 kubectl edit svc mongodb
测试 1 mongo mongodb://root:123456@xxx.xxx.xx.xx:27017/?authSource=admin
二进制 二进制也可以安装,可以在网上查下资料,姑且不做操作了。下面安装 mongo 是为了使用 client。
1 2 3 4 5 6 7 8 9 10 cat <<eof > /etc/yum.repos.d/mongodb-org-5.0.repo [mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/7Server/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc eof
1 2 yum install -y mongodb-org
1 2 sudo yum install -y mongodb-org-6.0.0 mongodb-org-server-6.0.0 mongodb-org-shell-6.0.0 mongodb-org-mongos-6.0.0 mongodb-org-tools-6.0.0
后续 增加 mongodb 的维护教程 增加 mongodb 的原理教程 增加 mongodb 监控的添加 更详细的 mongodb 参数可以查看中文文档
Take up one idea. Make that one idea your life - think of it, dream of it, live on that idea. Let the brain, muscles, nerves, every part of your body, be full of that idea, and just leave every other idea alone. This is the way to success. — Swami Vivekananda