如何限制docker网络使用?
How to limit docker network usage?
我正在寻找一种方法来限制“主机”作为 运行 Docker 图像网络的访问。我一直在寻找几天,但找不到解决方案。
有没有办法限制 Docker 用户的网络访问?
例如删除主机选项并始终使用网桥作为网络,因此当您调用 sudo docker network ls
时,输出只会是网桥和 none
或任何其他防止使用主机的方法。
一般来说,如果你可以 运行 任何 docker
命令,你就可以无限制地访问 Docker 可以做的一切,并且通过它,无限制地 root-level访问主机系统。没有(built-in)方法来限制 Docker 功能或阻止特定的 docker run
选项。
原则上,可以编写某种通过 Docker HTTP API but restricted certain options (for example, returned an HTTP 401 status code with a correctly-formatted JSON error if a "create a container" HTTP POST request 传递的 HTTP 代理,包括不允许的 NetworkMode
值)。实施这本身就是一个重要的项目,超出了 Stack Overflow 答案的范围。
所以我找到了我的问题的解决方案(替代方案),我认为它可能会帮助其他遇到同样问题的人。如果你想在 public 服务器上使用 docker 并且你不想让人们有可能使用网络托管(它基本上与根用户相同)你可以使用“奇点”。我试过了,效果很好。唯一需要时间的是你不能在奇点环境中构建你的 docker 文件,所以你必须在本地构建它们,将它们推送到你的 docker-repo 并通过你的奇点环境将它们拉到服务器。它可能会帮助那些希望保持服务器隐私的系统管理员,同时让人们可以灵活地使用 docker.
我正在寻找一种方法来限制“主机”作为 运行 Docker 图像网络的访问。我一直在寻找几天,但找不到解决方案。 有没有办法限制 Docker 用户的网络访问?
例如删除主机选项并始终使用网桥作为网络,因此当您调用 sudo docker network ls
时,输出只会是网桥和 none
或任何其他防止使用主机的方法。
一般来说,如果你可以 运行 任何 docker
命令,你就可以无限制地访问 Docker 可以做的一切,并且通过它,无限制地 root-level访问主机系统。没有(built-in)方法来限制 Docker 功能或阻止特定的 docker run
选项。
原则上,可以编写某种通过 Docker HTTP API but restricted certain options (for example, returned an HTTP 401 status code with a correctly-formatted JSON error if a "create a container" HTTP POST request 传递的 HTTP 代理,包括不允许的 NetworkMode
值)。实施这本身就是一个重要的项目,超出了 Stack Overflow 答案的范围。
所以我找到了我的问题的解决方案(替代方案),我认为它可能会帮助其他遇到同样问题的人。如果你想在 public 服务器上使用 docker 并且你不想让人们有可能使用网络托管(它基本上与根用户相同)你可以使用“奇点”。我试过了,效果很好。唯一需要时间的是你不能在奇点环境中构建你的 docker 文件,所以你必须在本地构建它们,将它们推送到你的 docker-repo 并通过你的奇点环境将它们拉到服务器。它可能会帮助那些希望保持服务器隐私的系统管理员,同时让人们可以灵活地使用 docker.