gpt4 book ai didi

mongodb - 在具有只读FS的Docker中运行Mongodb

转载 作者:行者123 更新时间:2023-12-02 19:40:18 24 4
gpt4 key购买 nike

出于安全原因,我想根据5.12启动一个只读fs的Mongo容器。

我有以下docker-compose.yml:

version: '2'
services:
mongodb:
image: mongo:3.2
command: -f /etc/mongo.conf
volumes:
- ./mongo/mongo.conf:/etc/mongo.conf:ro
- /data/db
user: mongodb
read_only: true

docker-compose up上,它失败,并显示错误 Failed to unlink socket file /tmp/mongodb-27017.sock errno:30 Read-only file system

好。没问题。我可以将 - /tmp添加到卷中。

但这是向卷添加每条路径的良好实践吗?还有其他补充路径吗?像一些日志路径等等?

有来自Mongodb的列表吗?

最佳答案

TL; DR案例

您不需要只读容器,只应将用户保持为主机的非root用户,仅挂载您真正需要的目录,并仅对挂载的目录管理权限。

完整答案

从官方的mongo docker imagebest usage practices of docker来看,使用gosu更加容易和方便。在这种情况下,您的MongoDB将由非root用户运行,这应该足够安全。

所有未从主机装载到容器的目录都不会受到容器到主机的影响。例如,即使您在没有安装任何内容的容器内删除系统的根目录,也不会影响主机目录(但是它将影响所有已安装的目录,因此,如果决定自己尝试使用=),请务必小心)。

同样,对于MongoDB /data/db目录,所有数据库信息都存储在该目录中,它写入所有信息“方案”等,因此,当它处于只读模式时,mongodb在任何情况下都将不起作用。这就是为什么您可以从mongodb官方镜像的docker-entrypoint.sh中看到mongodb之前的chown -R mongodb:mongodb /data/db行的原因。

关于mongodb - 在具有只读FS的Docker中运行Mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38125172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com