如何安全地在Docker中运行应用程序

我想在docker容器内安全地运行一个任意的应用程序,就像在一个vm中一样。 为此,我在主机系统的一个目录中保存了应用程序(我从web上下载的,我不信任的),然后创build一个将此目录映射到容器的主目录的卷,然后运行容器内的应用程序。 这种方法有没有安全问题? 有更好的解决scheme来完成相同的任务吗?

而且,为了安装所有必要的依赖关系,我让在容器内运行的bashterminal内执行一个任意的脚本:这可能是危险的吗?

只要你不给应用程序sudo访问,你应该很好地尝试一下。

Dockerfile中定义的依赖关系更好,清晰的方式让其他人看到。 select运行一个脚本,而不是也会做这个工作,但这样做更不方便。

添加到@Dimitris的答案。 还有其他的事情你需要考虑。 有一些东西容器不包含。 Docker使用命名空间来改变系统的进程视图。N / W共享内存等。但是你必须记住它不像KVM。 不像KVM(VMS)/ proc / sys那样,Docker直接和内核进行通信。

因此,如果任意应用程序尝试访问Cgroups,/ proc / sys,/ proc / bus等内核子系统,则可能会遇到麻烦。 除非是多租户系统,否则我认为是没有问题的。