【问题标题】:How to limit docker network usage?如何限制 docker 网络使用?
【发布时间】:2021-02-17 17:07:40
【问题描述】:

我正在寻找一种方法来限制“主机”作为运行 Docker 映像的网络的访问。我一直在寻找几天,但找不到解决方案。 有没有办法限制 Docker 用户的网络访问?

例如删除主机选项并始终使用网桥作为网络,因此当您调用sudo docker network ls 时,输出只会是网桥而没有

或任何其他防止使用主机的方式。

【问题讨论】:

    标签: docker docker-networking


    【解决方案1】:

    一般来说,如果您可以运行任何docker 命令,您就可以无限制地访问 Docker 可以执行的所有操作,并通过它获得对主机系统的无限制根级别访问权限。没有(内置)方法可以限制 Docker 功能或阻止特定的docker run 选项。

    原则上,可以编写某种通过Docker HTTP API但限制某些选项的HTTP代理(例如,如果包含"create a container" HTTP POST request,则返回带有正确格式JSON错误的HTTP 401状态代码一个不允许的 NetworkMode 值)。实施这本身就是一个重大项目,超出了 Stack Overflow 答案的范围。

    【讨论】:

    • 感谢您的回答。管理员可以限制用户的某些命令吗?使用主机网络选项,在具有 sudoers 并且在 docker 组中的用户的服务器上运行 docker 是不安全的
    • 不,没有办法限制您可以使用 docker 命令执行的操作。 (您可以非常轻松地使用它来编辑主机的 /etc/sudoers 文件等。)您可能不想在多用户系统上授予 Docker 访问权限。
    【解决方案2】:

    所以我找到了我的问题的解决方案(替代方案),我认为它可能会帮助其他有同样问题的人。如果您尝试在公共服务器上使用 docker,并且您不想让人们有可能使用网络托管(它与作为 root 用户基本相同),您可以使用“Singularity”。我已经尝试过了,它就像一个魅力。唯一需要时间的是,您无法在奇异环境中构建 docker 文件,因此您必须在本地构建它们,将它们推送到您的 docker-repo 并通过服务器上的奇异环境将它们拉出来。它可能会帮助希望保护服务器隐私的系统管理员,同时为人们提供使用 docker 的灵活性。

    【讨论】:

      猜你喜欢
      • 2018-10-06
      • 2020-04-18
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 2020-01-21
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多