记录一下:
部署内容:python tornado web后端 + es服务 + mongo服务 + ...
部署方案:后端server起容器服务,用mongo做存储。
遇到问题:docker-compose编排容器,为了持久化存储,将mongo直接挂载映射到D盘,但是会启服务失败。报错内容:
WiredTiger error (1) [1609420544:540495][1:0x7fa719ea7a80], file:WiredTiger.wt, connection: __posix_open_file, 672: /data/db/WiredTiger.wt:
handle-open: open: Operation not permitted Raw: [1609420544:540495][1:0x7fa719ea7a80], file:WiredTiger.wt, connection: __posix_open_file,
672: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
大概是权限问题。各种加权限操作无果。最后查资料得到2个可行方案。
解决方案1(亲测可行):“用docker数据卷” ,也就是docker volume方式。
参看文章:http://www.moguf.com/post/windockerrunmongo
问题:用docker volume方式 存储的磁盘位置我觉得不太直观,在Windows目录中不好找到。
解决方案2(我最终使用的这个方案):直接windows本地下载mongo。
参看文章:https://www.cnblogs.com/wanggang2016/p/10455681.html
然后在服务器容器内,访问mongo时候,ip用:hosts文件中的docker.ip啥来着忘了(docker desktop添加的)。容器是桥接网络。