容器安全常见问题
容器如何与 Docker Desktop 中的主机隔离?
Docker Desktop 在自定义/最小 Linux 虚拟中运行所有容器 计算机(本机 Windows 容器除外)。这增加了一个强大的 容器与主机机器之间的隔离,即使容器是 运行 rootful 的 root 文件。
但是,请注意以下几点:
容器可以访问通过“设置”配置为文件共享的主机文件 -> 资源 -> 文件共享(有关更多信息,请参阅下面的下一个常见问题解答问题)。
默认情况下,容器以 root 身份运行,但 Docker 桌面 VM。以提升的权限运行的容器(例如
--privileged
,--pid=host
,--cap-add
等)以 root 身份运行,提升 权限,这使他们能够访问 Docker 桌面 VM 内部,包括 Docker Engine。因此,用户必须小心 他们使用此类权限运行哪些容器以避免安全漏洞 恶意容器镜像。如果启用了增强型容器隔离 (ECI) 模式,则每个容器都在专用 Linux 用户中运行 Namespace 的 Namespace 中,这意味着容器没有 权限。即使使用
--privileged
标志或类似标志,则容器进程将仅在 container 的逻辑边界,否则为非特权。此外,ECI 还保护 使用其他高级技术来确保他们不会轻易突破 Docker 桌面 VM 和 Docker 引擎(有关更多信息,请参阅 ECI 部分 info) 的不需要更改容器或用户工作流程,因为 在盖子下增加了额外的保护。
容器对主机文件系统的哪些部分具有读写访问权限?
容器只能访问通过设置 -> 资源 -> 文件共享共享的主机文件。
并且仅当此类文件被绑定挂载到容器中时(例如docker run -v /path/to/host/file:/mnt ...
).
以 root 身份运行的容器是否可以访问主机上管理员拥有的文件或目录?
不;主机文件共享(从主机文件系统绑定挂载)使用构建的
文件服务器(在com.docker.backend
作为运行 Docker 的用户
Desktop),因此容器无法获得主机上的用户无法获得的任何访问权限
已经有。