假设我从集线器存储库中拉出一个新镜像,并在不查看dockerfile内容的情况下运行它。容器或镜像会以任何可能的方式影响我的主机吗?
请让我知道,因为我将运行一个用户在我的服务器上输入的图像名称的图像列表。我担心它是否会影响服务器/主机。
发布于 2016-08-10 20:07:30
对于图像的默认执行,答案是有条件的否。内核功能是有限的,文件系统也是有限的,进程空间是隔离的,而且它位于与主机不同的桥接网络上。任何允许访问主机的行为都是一个安全漏洞。
有条件的部分是,它可能会耗尽你的CPU周期,它会耗尽你的内存,它会填满你的驱动器,它会将网络流量从你的机器NAT‘’ed发送到你的IP地址。换句话说,默认情况下,没有任何东西可以阻止容器对您的主机进行DoS攻击。
Docker确实有能力限制其中的许多事情,包括限制内存、限制CPU或优先处理进程,并且有针对文件系统的配额解决方案。
您也可以从另一个方向将主机暴露给容器,从而有效地创建安全漏洞。这将包括挂载主机卷,特别是容器内的docker.sock,使用--privileged删除内核功能限制,以及使用--net=host删除网络隔离。对容器执行这些操作都会关闭Docker默认提供的保护。
由于Docker与主机共享内核的方式,它确实比虚拟机具有更低的隔离级别。因此,如果您正在运行的代码包含内核或物理硬件漏洞,则可能会访问主机。出于这个原因,如果您正在运行不受信任的代码,您可能需要研究linuxkit,它提供了一个轻量级的基于容器的操作系统,可以在vm中运行。这用于提供在windows/mac的docker上的hyperv/xhyve下运行的moby操作系统。
https://stackoverflow.com/questions/38871798
复制相似问题