【发布时间】:2019-07-13 05:29:03
【问题描述】:
对于许多开发工具,我发现将它们安装在容器中并在其中进行构建和测试很有用。使用一些包装脚本来组装快速增长的命令行,即使在其中运行 IDE 之类的 GUI(X-windows)应用程序也不难。
但是,授予用户对系统 docker daemon 实例的访问权限有效地为他们提供了 root 权限,因为他们可以以 root 身份运行容器并在其中挂载主机文件系统的任何部分。在开发人员机器上通常不是问题,因为主要用户已经拥有完整的 sudo 权限,但在某些共享机器上可能是。
现在runc,docker 下实际创建容器的工具,能够使用用户和子用户运行非 root 用户。但是,这并没有提供从存储库下载图像和管理它们的任何东西。并且可以将 Docker 守护进程配置为以特定用户身份运行,但不能以请求它们的用户身份启动容器。
那么有什么方法可以让系统上的任何用户都可以像自己一样使用子用户运行容器,但仍然可以访问注册表?
我见过在这些条件下构建容器的工具,例如img,它确实在子用户的引擎盖下运行runc,但除非我错过了什么,否则它没有一种方便的方法来运行和管理构建的容器。大概假设它们将包含系统服务,但我想将容器用作特定用户任务的固定环境。
【问题讨论】:
-
podman是我相信的方式。它无根运行,默认情况下为普通用户使用用户命名空间。它还具有补充构建工具 -buildah。 -
@DanilaKiver,这将是一个完全有效的答案。
标签: docker-container runc