1、最近在做HDFS容器化过程中,发现在安全模式下,datanode服务在容器内起不来。找了一圈,发现容器在启动时,默认给的权限不够,导致datanode服务无法启动。
报错如下:
ERROR: Cannot set priority of datanode process 191
于是,按照网上解决方案一顿操作,没用。
最后,在启动容器时,加上--cap-add=all解决问题。
2、cap-add命令的用处是啥
docker使用--privileged --cap-add --cap-drop来控制容器的权限。进行权限的添加和删除。
--privileged 直接给所有的权限;--cap-add可以添加指定的权限;--cap-drop可以去除指定的权限。
目前Docker容器默认只用到了以下的Capability:CHOWN, DAC_OVERRIDE, FSETID, FOWNER, MKNOD,NET_RAW, SETGID, SETUID, SETFCAP,SETPCAP, NET_BIND_SERVICE, SYS_CHROOT, KILL, AUDIT_WRITE.