小编Dmy*_*hov的帖子

Rootless Docker:需要为 docker 容器中的非 root 用户提供对主机上安装的卷的写入访问权限

我想为 Docker 容器中的非 root 用户提供对主机上安装的卷的写入访问权限。我在容器和主机内也有相同的非 root 用户和组。

\n

运行容器时,我将主机卷安装到其中-v /some/folder:/some/folder。我这样做是因为我的应用程序在 docker 容器内运行需要将文件写入已安装的主机文件夹。但由于我以非 root 用户身份运行我的应用程序,因此它 \xe2\x80\x99t 无权写入该文件夹。

\n

另外,我已在容器内自动更改此安装的文件夹权限。\n我已将以下用户和组指定为主机上此文件夹的所有者:\n\xe2\x80\x9cnonrootuser1:nonrootgroup1\xe2\x80\x9d

\n

对于“rootful”docker,它工作正常,但如果它在容器内是无根的,它会在用户和组下面显示为该文件夹的所有者:\n\xe2\x80\x9croot:nobody\xe2\x80\ x9d

\n

重现此内容的步骤

\n
    \n
  1. 在主机上添加用户和组
  2. \n
\n
groupadd -g 1015 nonrootgroup1\nuseradd -u 1099 nonrootuser1\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 创建将分配给主机上的 osquery groupadd 的目录:
  2. \n
\n
sudo su\n\nmkdir -p /var/osquery/sock\necho "hello world" > /var/osquery/sock/file.txt\n\nchown root:nonrootgroup1 /var/osquery/sock\nchmod g+s /var/osquery/sock/\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. 在主目录中创建 Dockerfile:
  2. \n
\n
FROM alpine:3.14\n\nRUN addgroup -g 1015 -S nonrootgroup1\nRUN adduser -D nonrootuser1 -u 1099\n\nUSER nonrootuser1:nonrootgroup1\n\nCMD ["tail", "-f", "/dev/null"]\n …
Run Code Online (Sandbox Code Playgroud)

docker docker-volume rootless

6
推荐指数
0
解决办法
497
查看次数

标签 统计

docker ×1

docker-volume ×1

rootless ×1