为什么我没有对作为 tmpfs 安装在 docker 中的 /运行 的读写访问权限?

Why I don't have rw access to /run which is mounted as tmpfs in docker?

❯ docker run -d -it --name debian --mount type=tmpfs,destination=/run,tmpfs-mode=1777 --mount type=tmpfs,destination=/tmp,tmpfs-mode=1777 debian bash


❯ docker exec -it debian ls -lrtd /run /tmp
  drwxrwxrwt 2 root root 40 Jul 27 14:06 /tmp
  drwxr-xr-x 2 root root 40 Jul 27 14:06 /run

在这里,为什么 tmpfs-mode=1777 没有单独应用于 /运行?
它适用于其他目录。
这里有什么具体原因吗?

我相信由于 /run 已经存在,该目录的权限正在应用于 tmpfs 安装。 /tmp 也发生了同样的事情,但是由于底层 /tmp 目录的权限已经与您想要的相匹配,所以您没有注意到它。

您可以通过在其他目录(例如 /root)上创建 tmpfs 挂载来验证这一点。你会看到他们采用了挂载点的权限。

如果您确实需要 /run 上的不同权限,您可以在 /run 上构建一个具有所需权限的新映像(或者只是 运行 chmod一旦容器 运行ning).