放弃容器内的特权

我的一个图像需要安装设备。 因此,启动时需要cap_sys_admin。 但是,一旦不再需要,我想放弃这个function。

有什么办法在后期放弃这个能力?

你应该考虑使用一个卷来做这个数量,而不是要求容器从里面做出来。

例如,而不是做:

docker run --cap-add SYS_ADMIN ... 

然后在里面调用mount:

 mount -t nfs server:/some/path /local/path 

相反,您可以使用“本地”驱动程序创build一个卷,如下所示:

 docker volume create -d local -o type=nfs -o device=:/some/path -oo=addr=server,rw my_volume 

然后在运行容器时使用它:

 docker run -v my_volume:/local/path ... 

当容器启动时,主机将处理挂载,因为文件系统将可用于容器。 容器不需要添加function。