如何设置docker进程的负面效果?

bit*_*ask 4 privileges nice docker

我在docker映像中有一个代码测试环境,可以通过在容器中运行bash来使用它:

me@host$ docker run -ti myimage bash
Run Code Online (Sandbox Code Playgroud)

在容器内,我通常会说一个启动程序

root@docker# ./myprogram
Run Code Online (Sandbox Code Playgroud)

但是,我希望myprogram的过程具有负面影响(有充分的理由)。然而:

root@docker# nice -n -7 ./myprogram
nice: cannot set niceness: Permission denied
Run Code Online (Sandbox Code Playgroud)

鉴于docker是由docker守护进程运行的,该守护进程以root身份运行,而我是root容器内的人,为什么这不起作用,又怎么能造成负面影响呢?

注意:docker镜像正在运行debian / sid,主机是ubuntu / 12.04。

use*_*103 5

尝试添加

--privileged=true
Run Code Online (Sandbox Code Playgroud)

到您的运行命令。

[edit] privileged = true是旧方法。看起来像

--cap-add=SYS_NICE
Run Code Online (Sandbox Code Playgroud)

应该也可以。

  • 在我的系统上,我得到了docker:来自守护程序的错误响应:linux spec功能:未知的添加功能:“ CAP_CAP_SYS_NICE”。使用--cap-add = SYS_NICE可以正常工作。 (2认同)