0

对于许多开发工具,我发现将它们安装在容器中并在其中进行构建和测试很有用。使用一些包装脚本来组装快速增长的命令行,即使在其中运行像 IDE 之类的 GUI(X-windows)应用程序也不会太难。

但是,授予用户对系统 docker daemon 实例的访问权限有效地为他们提供了 root 权限,因为他们可以以 root 身份运行容器并在其中挂载主机文件系统的任何部分。在开发人员机器上通常不是问题,因为主要用户已经拥有完整的 sudo 权限,但在某些共享机器上可能是这样。

现在runc,docker 下实际创建容器的工具能够使用用户和子用户运行非 root 用户。但是,这并没有提供从存储库下载图像和管理它们的任何东西。并且可以将 Docker 守护程序配置为以特定用户身份运行,但不能以请求它们的用户身份启动容器。

那么有没有什么方法可以让系统上的任何用户都可以像自己和子用户一样运行容器,但仍然可以访问注册表?

我已经看到了在这些条件下构建容器的工具,例如img,它确实runc在子用户的后台运行,但除非我错过了什么,否则它没有一种方便的方法来运行和管理构建的容器。大概假设它们将包含系统服务,但我想将容器用作特定用户任务的罐装环境。

4

1 回答 1

1

您可以使用podman代替docker,它可以由普通用户运行而无需提升权限。root在使用它之前,您可能需要设置 (as ) 的唯一一件事是subuid/ subgidmapping (请参阅安装说明)。该工具的 CLI 类似于 Docker 的 CLI(podman pullpodman run等),它也可以使用 Docker 注册表。

无根容器有一些限制,但在大多数情况下,这已经足够了。

于 2019-07-12T21:29:03.180 回答