我想安全地在docker容器中运行任意应用程序,就像在vm中一样。为此,我将应用程序(我从网上下载并且我不信任)保存在主机系统的目录中,然后创建一个卷,将该目录映射到容器的主目录,然后我在容器内运行应用程序。这种方法有任何安全问题吗?是否有更好的解决方案来完成同样的任务?
此外,为了安装所有必需的依赖项,我允许在容器内运行的bash终端内执行一个任意脚本:这有危险吗?
答案 0 :(得分:3)
添加到@Dimitris的答案。您还需要考虑其他事项。 容器中不包含某些东西。 Docker使用命名空间来改变系统的进程视图。即N / W共享内存等。但是你必须记住它不像KVM。 Docker确实与内核直接对话,不像KVM(Vms),如/ proc / sys。
因此,如果任意应用程序试图访问内核子系统,如Cgroups,/ proc / sys,/ proc / bus等,则可能遇到麻烦。除非它是一个多租户系统,否则我会说它很好。
答案 1 :(得分:1)
只要您不提供应用 sudo 访问权限,就应该尝试一下。
最好在Dockerfile中定义依赖关系,以便其他人看清楚。选择运行脚本也可以完成这项工作,但更不方便。