以非root用户身份启动Mongodb容器
我正在使用mongo:3.2的官方mongodb docker。 在entrypoint.sh我重新启动与复制模式的Mongodb。 Mongodb进程由root用户拥有。 有没有什么办法可以通过非root用户启动容器,并能够在副本集模式下重启mongodb。 现在我收到以下错误。
在initAndListen:98中存储[initandlisten]exception无法创build/打开locking文件:/data/db/mongod.lock errno:13权限被拒绝是否mongod实例已经在运行?终止
我的docker文件是
FROM mongo:3.2 COPY entrypoint.sh /root/entrypoint.sh ENTRYPOINT ["/root/entrypoint.sh"] here
谢谢,
您可以使用user – group格式的标志–user来在docker run命令上自定义用户
当使用ENTRYPOINT,CMD,RUN指令来启动/执行所需用户的进程时,可以使用dockerfile中的USER
命令。
句法:
USER <user>[:<group>]
或
USER <UID>[:<GID>]
例:
FROM mongo:3.2 COPY entrypoint.sh /root/entrypoint.sh USER deploy:root ENTRYPOINT ["/root/entrypoint.sh"]
从user2010672
更新:(工作解决scheme)
FROM mongo:3.2 COPY entrypoint.sh /root/entrypoint.sh RUN chown -R mongodb:mongodb /var/log /data/db USER mongodb ENTRYPOINT ["/root/entrypoint.sh"]
感谢user2010672