openssl rand -base64 666 > /mongo/key.txt chmod 600 /mongo/key.txt
--keyFile=/mongo/key.txt --replSet=MONGO_EDU_SET --dbpath=/mongo/data --logpath=/mongo/logs/a.log --logappend
2019-09-05T07:01:23.625+0000 I ACCESS [main] error opening file: /mongo/key.txt: bad file
Run Code Online (Sandbox Code Playgroud)
Cil*_*ing 17
/opt/keyfile
在我的例子中,一个密钥文件是在经过许可的情况下安装到的0600,root,root
(在主机上),在 docker 镜像中它是0600,1000,1000
.
为了解决这个问题,我将host中的权限更改为999,999
(翻译为systemd-coredump
),但在docker内部用户999被翻译为mongodb
.
因此,要修复它,您只需调用(在主机上):
chown 999:999 key-path-on-host
Run Code Online (Sandbox Code Playgroud)
小智 8
检查容器中 /mongo/key.txt 的所有者和属性。一定是这样的:
root@243810c57e61:/# ll /etc/mongo/replkey
-r-------- 1 mongodb root 1024 Sep 27 12:19 /etc/mongo/replkey
Run Code Online (Sandbox Code Playgroud)
小智 5
ls -la
主机中的响应应该类似于
-r-------- 1 systemd-coredump root 1024 jul 8 11:12 keyfile/mongo-cluster-key
Run Code Online (Sandbox Code Playgroud)
我解决了进入容器并执行以下操作的问题chown mongodb keyfile/mongo-cluster-key
另外,我认为您可以通过主机来完成此操作:
$ chown systemd-coredump keyfile/mongo-cluster-key
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10491 次 |
最近记录: |