假设我有一个以非 root用户运行的容器,我想将一个卷目录从主机绑定安装到该容器中。然后容器将写入该目录。说,主机上的目录是/tmp/container/data. 如果该路径在主机上不存在,我观察到它是通过所有权创建的(由 docker)root。因此,容器无法向该目录写入任何内容(访问被拒绝),因为我的容器未使用用户root运行。
当然,我可以/tmp/container/data在启动容器之前在主机端创建具有正确权限的目录,但是这个解决方案显然不能扩展 - 我必须为每个我想要使用绑定卷的容器都这样做目录不存在的主机。
所以我的问题是,将来自主机的绑定卷用于尚不存在的目录,同时仍然让非根容器具有对该卷的写访问权限的最佳方法是什么。
您准确地描述了 docker 的正常行为,来自 docker 引擎的不存在的绑定挂载将被初始化为 root 拥有的空目录。请注意,这不会在 swarm 模式下发生,它将无法在主机上调度容器。
用于避免这种情况的选项包括:
| 归档时间: |
|
| 查看次数: |
3958 次 |
| 最近记录: |