“msg”:“Error setting up listener”,“attr”:{“error”:{“code”:9001,......,“errmsg”:“Permission denied”}}

问题描述:

通过docker-compose部署的jayfong/yapi + mongo镜像,但mongodb容器一直启动不起来,通过docker logs查看日志找到error处:

“msg”:“Error setting up listener”,“attr”:{“error”:{“code”:9001,“codeName”:“SocketException”,“errmsg”:“Permission denied”}}

问题排查:

​ 通过搜索这个报错信息,大部分帖子都说的是mongodb启动时,会在/tmp下生成mongodb-xxx.sock的文件,没权限导致的报错,但docker部署的很少;

最终通过这篇帖子找到与我相似之处并且得到解决:

https://github.com/mbentley/docker-omada-controller/issues/138

问题解决:

​ 我的部署情况和上述帖子的情况一致,由于磁盘空间问题,曾经修改过docker默认的存储路径(修改前没这个问题,修改后出现这个问题)

​ 而修改 Docker 默认路径可能会导致权限问题,特别是涉及到容器内部的路径。这是因为 Docker 在设置容器内部路径权限时,可能会使用默认路径来计算权限。当你修改了 Docker 默认路径,容器内部的路径权限设置可能与实际不符,从而导致权限问题。

​ 在明确了容器内部路径权限问题的情况下,我是这么解决的:

​ 1.在某个路径下创建 tmp 文件夹供容器挂载,并且赋予文件夹足够的权限:chmod 777 /xxx/xxx/tmp

​ 2.修改docker-compose.yml,添加mongodb的挂载,将容器内部的/tmp挂载在创建的文件夹上

再次启动一切正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值