容器安全常见问题

容器如何与 Docker Desktop 中的主机隔离?

Docker Desktop 在自定义/最小 Linux 虚拟中运行所有容器 计算机(本机 Windows 容器除外)。这增加了一个强大的 容器与主机机器之间的隔离,即使容器是 运行 rootful 的 root 文件。

但是,请注意以下几点:

  • 容器可以访问通过“设置”配置为文件共享的主机文件 -> 资源 -> 文件共享(有关更多信息,请参阅下面的下一个常见问题解答问题)。

  • 默认情况下,容器以 root 身份运行,但 Docker 桌面 VM。使用提升的权限(例如、、 等)运行的容器以 root 身份运行,并提升 权限,这使他们能够访问 Docker 桌面 VM 内部,包括 Docker Engine。因此,用户必须小心 他们使用此类权限运行哪些容器以避免安全漏洞 恶意容器镜像。--privileged--pid=host--cap-add

  • 如果启用了增强型容器隔离 (ECI) 模式,则每个容器都在专用 Linux 用户中运行 Namespace 的 Namespace 中,这意味着容器没有 权限。即使使用标志或类似名称,容器进程也只会在 container 的逻辑边界,否则为非特权。此外,ECI 还保护 使用其他高级技术来确保他们不会轻易突破 Docker 桌面 VM 和 Docker 引擎(有关更多信息,请参阅 ECI 部分 info) 的不需要更改容器或用户工作流程,因为 在盖子下增加了额外的保护。--privileged

容器对主机文件系统的哪些部分具有读写访问权限?

容器只能访问通过设置 -> 资源 -> 文件共享共享的主机文件。 并且仅当此类文件被绑定挂载到容器中时(例如 )。docker run -v /path/to/host/file:/mnt ...

以 root 身份运行的容器是否可以访问主机上管理员拥有的文件或目录?

不;主机文件共享(从主机文件系统绑定挂载)使用构建的 文件服务器(以运行 Docker 的用户身份运行 Desktop),因此容器无法获得主机上的用户无法获得的任何访问权限 已经有。com.docker.backend