根据我从阅读Docker文档中了解到的信息,容器共享运行它们的主机的内核。这是否意味着用户可以通过使用容器来按自己的意愿设置内核配置?如果是这样的话,原因是如果用户可以自行设置内核,为什么我们还要麻烦允许/拒绝内核功能?我的第三个问题是:如果确实用户可以设置内核,那么Apparmor之类的系统是否可以帮助防止这种情况的发生?
总结一下,这是我的问题:
最佳答案
Can users change a docker host's kernel configuration from within a running container (since they share the kernel)
容器在其自己的沙箱中运行。它具有与主机隔离的自己的文件系统。因此,默认情况下,它无权影响主机及其内核。
现在,您可以通过挂载只能由root管理员用户访问的主机目录,使容器可以访问关键内容。由于默认情况下,容器内的
root
如果在容器外部添加root
,则可以从安装的目录中利用计算机上的关键内容。但是,这是使用user namespaces解决的。因此,只要您不让容器访问重要的东西,它仍然是安静安全的,甚至比直接在主机上运行应用程序更安全。
您可以在official docs中阅读有关docker安全性的更多信息。
关于security - 用户可以在Docker容器中更改内核配置形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48190321/