docker run -d
–name mongodb_container
-e MONGO_INITDB_ROOT_USERNAME=root
-e MONGO_INITDB_ROOT_PASSWORD=root
-e MONGO_INITDB_DATABASE=dataserver
-p 27017:27017 \
无法在mongo容器里编辑文件
如果你无法直接编辑 MongoDB 容器内的配置文件,你可以尝试通过以下方式来修改容器内的 MongoDB 配置文件:
在宿主服务器上编辑配置文件:
从宿主服务器上复制容器内的 MongoDB 配置文件到宿主服务器上,然后在宿主服务器上使用文本编辑器进行修改。
复制配置文件到宿主服务器上的当前目录
docker cp mongo_container:/etc/mongod.conf /services/mongod.conf
然后在宿主服务器上使用你喜欢的文本编辑器(如 vi、nano 等)对 mongod.conf 文件进行修改。
将修改后的配置文件重新复制回容器中:
修改完配置文件后,再将修改后的文件复制回容器内的相应位置。
将修改后的配置文件复制回容器内
docker cp /services/mongod.conf mongo_container:/etc/mongod.conf
重启 MongoDB 服务:
在容器内退出编辑器后,重新启动 MongoDB 服务使修改生效。
新的mongo配置文件
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
# engine:
# wiredTiger:
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# network interfaces
net:
port: 27017
bindIp: 0.0.0.0
# how the process runs
processManagement:
timeZoneInfo: /usr/share/zoneinfo
security:
authorization: enabled
#operationProfiling:
#replication:
#sharding:
## Enterprise-Only Options:
bindIp: 127.0.0.1改为bindIp: 0.0.0.0作用
将 MongoDB 的 bindIp 配置从 127.0.0.1 修改为 0.0.0.0 是为了允许 MongoDB 监听来自任何网络接口的连接,而不仅限于本地回环接口。这样可以使 MongoDB 可以接受来自外部网络的连接,而不仅限于本地访问。
当 bindIp 设置为 0.0.0.0 时,MongoDB 会监听所有可用的网络接口,包括本地回环接口(127.0.0.1)和其他网络接口。这对于需要在不同主机或容器之间进行远程连接的情况非常有用。
但需要注意的是,开放到公共网络的 MongoDB 实例存在安全风险,因为未经身份验证的用户可能会尝试访问数据库。为了加强安全性,建议在生产环境中采取适当的安全措施,如启用身份验证、限制访问权限等。
修改security: authorization: enabled
使得必须通过账号密码登录