【发布时间】:2021-11-09 18:28:30
【问题描述】:
我不是在问如何从头开始创建无根容器。相反,我得到了一些部署为默认以 root 身份运行的预构建 Docker 容器映像的软件。我需要修改这些容器,以便它们可以部署在 Kubernetes 上,这意味着我需要使这些容器无根。需要明确的是,我没有这些容器的来源,所以我不能简单地从头开始重建它们。
我发现了很多关于构建无根容器的文章,但它们都假设您是从头开始构建容器的。我花了几个小时搜索,但找不到任何关于将现有容器修改为无根的内容。
我意识到这可能是一个非常开放的问题,但我不知道我需要考虑的所有事情。我能够收集到的两件事是在 Dockerfile 中添加诸如 USER 1000 之类的行,以及调整某些文件和文件夹的所有权和权限。除此之外,我不确定我需要做什么。
【问题讨论】:
-
你不是在找
securityContext.runAsUser吗? kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/… -
相当于@AliTou提到的Kubernetes选项,如果你只是
docker run --user 12345 the-preexisting-image会发生什么? -
到目前为止,我已经将几个容器转换为无根容器。主要问题是文件权限,容器中的所有内容都归根用户所有。所以我只是以 USER 1000 的身份运行,并根据需要更改文件和文件夹的所有权和权限,这似乎是有效的。我真的很希望能找到有关此主题的更多信息,但是当需要使预先存在的图像无根时,这似乎是一种罕见的情况。
标签: docker kubernetes containers rootless