docker快速启动一个mongodb
·
使用mongodb(bitnami)镜像
docker-compose快速启动一个mongodb,用于调试学习还是不错的,还有一个mongo-express的web管理页面
version: "3.9"
services:
mongodb:
image: docker.io/bitnami/mongodb:7.0.14
restart: always
container_name: mongodb7
user: root
ports:
- 27017:27017
environment:
- MONGODB_ADVERTISED_HOSTNAME=mongodb
- MONGODB_ROOT_PASSWORD=000000 #数据库密码
volumes:
- ./mongodb7_data:/bitnami/mongodb
- /etc/localtime:/etc/localtime:ro
#mongodbweb管理工具
mongdbmanager:
container_name: mongomg
restart: always
image: mongo-express:1.0.2-20
ports:
- 8080:8081
environment:
ME_CONFIG_BASICAUTH: true
ME_CONFIG_BASICAUTH_USERNAME: root #网页账号
ME_CONFIG_BASICAUTH_PASSWORD: 000000 #网页密码
ME_CONFIG_MONGODB_URL: mongodb://root:000000@mongodb7:27017
#连接mongodb_url配置
如果有权限报错,导致mongodb容器无法启动,将绑定挂载出来的目录设置一个777权限
chmod 777 ./mongodb7_data
访问mongo-express容器映射出的8080端口,输入上面yaml中定义的网页账号和密码,进入如下页面,这个mongodb Web管理软件还是很简洁的

bitnami镜像中可以自己定义的环境变量如下
这个是我从官方文档里面弄下来的,不知道有没有错误,可以自己去bitnami的官方看看mongodb的环境变量
可自定义的环境变量
| 名称 | 描述 | 默认值 |
|---|---|---|
| MONGODB_MOUNTED_CONF_DIR | 用于包含自定义配置文件的目录(覆盖默认生成的配置文件) | ${MONGODB_VOLUME_DIR}/conf |
| MONGODB_INIT_RETRY_ATTEMPTS | 检查服务初始化状态时的最大重试次数 | 7 |
| MONGODB_INIT_RETRY_DELAY | 每次重试检查服务初始化状态时的等待时间(秒) | 5 |
| MONGODB_PORT_NUMBER | MongoDB 的端口号 | $MONGODB_DEFAULT_PORT_NUMBER |
| MONGODB_ENABLE_MAJORITY_READ | 启用 MongoDB 操作中的多数读取 | true |
| MONGODB_DEFAULT_ENABLE_MAJORITY_READ | 默认启用 MongoDB 操作中的多数读取(在构建时设置) | true |
| MONGODB_EXTRA_FLAGS | MongoDB 初始化时的额外标志 | nil(无) |
| MONGODB_ENABLE_NUMACTL | 使用 numactl 执行命令 | false |
| MONGODB_SHELL_EXTRA_FLAGS | 使用 MongoDB 客户端进行初始化时的额外标志(在挂载初始化脚本时有用) | nil(无) |
| MONGODB_ADVERTISED_HOSTNAME | 用于广告 MongoDB 服务的主机名 | nil(无) |
| MONGODB_ADVERTISE_IP | 是否将广告主机名设置为容器的 IP | false |
| MONGODB_ADVERTISED_PORT_NUMBER | 广告的 MongoDB 端口号(如果你有代理转发请求到容器,建议设置此环境变量) | nil(无) |
| MONGODB_DISABLE_JAVASCRIPT | 禁用 MongoDB 服务器端的 JavaScript 执行 | no |
| MONGODB_ENABLE_JOURNAL | 启用 MongoDB 的日志功能 | nil(无) |
| MONGODB_DISABLE_SYSTEM_LOG | 禁用 MongoDB 守护进程的系统日志 | nil(无) |
| MONGODB_ENABLE_DIRECTORY_PER_DB | 为每个数据库使用单独的文件夹存储数据 | nil(无) |
| MONGODB_ENABLE_IPV6 | 使用 IPv6 进行数据库连接 | nil(无) |
| MONGODB_SYSTEM_LOG_VERBOSITY | MongoDB 守护进程日志级别 | nil(无) |
| MONGODB_ROOT_USER | MongoDB 的 root 用户名 | root |
| MONGODB_ROOT_PASSWORD | MongoDB 的 root 用户密码 | nil(无) |
| MONGODB_USERNAME | 在初始化时生成的用户 | nil(无) |
| MONGODB_PASSWORD | 为 MONGODB_USERNAME 指定的非 root 用户设置的密码 | nil(无) |
| MONGODB_DATABASE | 在初始化时创建的数据库名称 | nil(无) |
| MONGODB_METRICS_USERNAME | 用于指标收集的用户,例如与 mongodb_exporter 配合使用 | nil(无) |
| MONGODB_METRICS_PASSWORD | 为 MONGODB_METRICS_USERNAME 指定的非 root 用户设置的密码 | nil(无) |
| MONGODB_EXTRA_USERNAMES | 用逗号或分号分隔的额外用户列表,初始化时创建 | nil(无) |
| MONGODB_EXTRA_PASSWORDS | 用逗号或分号分隔的密码列表,针对 MONGODB_EXTRA_USERNAMES 中指定的用户 | nil(无) |
| MONGODB_EXTRA_DATABASES | 用逗号或分号分隔的数据库列表,初始化时为 MONGODB_EXTRA_USERNAMES 指定的用户创建 | nil(无) |
| ALLOW_EMPTY_PASSWORD | 是否允许在没有设置密码的情况下访问 MongoDB | no |
| MONGODB_REPLICA_SET_MODE | MongoDB 副本集模式,可以是 primary、secondary 或 arbiter | nil(无) |
| MONGODB_REPLICA_SET_NAME | MongoDB 副本集的名称 | $MONGODB_DEFAULT_REPLICA_SET_NAME |
| MONGODB_REPLICA_SET_KEY | MongoDB 副本集密钥 | nil(无) |
| MONGODB_INITIAL_PRIMARY_HOST | 副本集主节点的主机名(对于 arbiter 和 secondary 节点来说必要) | nil(无) |
| MONGODB_INITIAL_PRIMARY_PORT_NUMBER | 副本集主节点的端口号(对于 arbiter 和 secondary 节点来说必要) | 27017 |
| MONGODB_INITIAL_PRIMARY_ROOT_PASSWORD | 副本集主节点 root 用户密码(对于 arbiter 和 secondary 节点来说必要) | nil(无) |
| MONGODB_INITIAL_PRIMARY_ROOT_USER | 副本集主节点 root 用户名(对于 arbiter 和 secondary 节点来说必要) | root |
| MONGODB_SET_SECONDARY_OK | 将节点标记为可读。适用于 PVC 丢失的情况 | no |
| MONGODB_DISABLE_ENFORCE_AUTH | 默认启用 MongoDB 身份验证。如果设置为 true,MongoDB 将不强制身份验证 | false |
这一块不能改的
只读环境变量
| 名称 | 描述 | 默认值 |
|---|---|---|
| MONGODB_VOLUME_DIR | 持久化存储的基础目录 | $BITNAMI_VOLUME_DIR/mongodb |
| MONGODB_BASE_DIR | MongoDB 安装目录 | $BITNAMI_ROOT_DIR/mongodb |
| MONGODB_CONF_DIR | MongoDB 配置文件目录 | $MONGODB_BASE_DIR/conf |
| MONGODB_DEFAULT_CONF_DIR | MongoDB 默认配置文件目录 | $MONGODB_BASE_DIR/conf.default |
| MONGODB_LOG_DIR | MongoDB 日志目录 | $MONGODB_BASE_DIR/logs |
| MONGODB_DATA_DIR | MongoDB 数据目录 | ${MONGODB_VOLUME_DIR}/data |
| MONGODB_TMP_DIR | MongoDB 临时目录 | $MONGODB_BASE_DIR/tmp |
| MONGODB_BIN_DIR | MongoDB 可执行文件目录 | $MONGODB_BASE_DIR/bin |
| MONGODB_TEMPLATES_DIR | 存放 mongodb.conf 模板文件的目录 | $MONGODB_BASE_DIR/templates |
| MONGODB_MONGOD_TEMPLATES_FILE | mongodb.conf 模板文件的路径 | $MONGODB_TEMPLATES_DIR/mongodb.conf.tpl |
| MONGODB_CONF_FILE | MongoDB 配置文件的路径 | $MONGODB_CONF_DIR/mongodb.conf |
| MONGODB_KEY_FILE | MongoDB 副本集密钥文件的路径 | $MONGODB_CONF_DIR/keyfile |
| MONGODB_DB_SHELL_FILE | MongoDB dbshell 文件路径 | /.dbshell |
| MONGODB_RC_FILE | MongoDB rc 配置文件路径 | /.mongorc.js |
| MONGOSH_DIR | mongosh(MongoDB shell)目录的路径 | /.mongodb |
| MONGOSH_RC_FILE | mongosh 配置文件路径 | /.mongoshrc.js |
| MONGODB_PID_FILE | MongoDB PID 文件路径 | $MONGODB_TMP_DIR/mongodb.pid |
| MONGODB_LOG_FILE | MongoDB 日志文件路径 | $MONGODB_LOG_DIR/mongodb.log |
| MONGODB_INITSCRIPTS_DIR | MongoDB 容器初始化脚本目录 | /docker-entrypoint-initdb.d |
| MONGODB_DAEMON_USER | MongoDB 系统用户 | mongo |
| MONGODB_DAEMON_GROUP | MongoDB 系统用户组 | mongo |
| MONGODB_DEFAULT_PORT_NUMBER | 构建时指定的 MongoDB 端口号 | 27017 |
| MONGODB_DEFAULT_ENABLE_JOURNAL | 构建时是否启用 MongoDB 日志功能 | true |
| MONGODB_DEFAULT_DISABLE_SYSTEM_LOG | 构建时是否禁用 MongoDB 守护进程的系统日志 | false |
| MONGODB_DEFAULT_ENABLE_DIRECTORY_PER_DB | 构建时是否为每个数据库使用单独的目录存储数据 | false |
| MONGODB_DEFAULT_ENABLE_IPV6 | 构建时是否使用 IPv6 进行数据库连接 | false |
| MONGODB_DEFAULT_SYSTEM_LOG_VERBOSITY | 构建时设置的 MongoDB 守护进程日志级别 | 0 |
| MONGODB_DEFAULT_REPLICA_SET_NAME | 构建时指定的 MongoDB 副本集名称 | replicaset |
更多推荐
所有评论(0)