首页 > 解决方案 > 进程可以在 Windows 上写入 docker 卷,而不是在 Ubuntu 上

问题描述

我有一个基于opencpu/base的图像。它启动一个基于 apache 的服务器,然后在 sombody 每次调用 API 端点时调用 R 脚本。

其中一个脚本尝试将文件写入容器中的某个位置。当我将文件夹挂载到该位置时,它可以在我的 Windows 机器上运行,但不能在 Ubuntu 上运行。

我试过在 Ubuntu 上使用命名卷,但它也不起作用。当我在 Ubuntu 上以交互方式在容器内运行 bash 时,我可以很好地写入和读取已安装的卷。但是apache进程不能。

有人对这里可能发生的事情有一些提示吗?

标签: docker

解决方案


当您以交互方式登录到容器时,您将拥有 root 权限。Apache 通常作为另一个用户 (www-data) 运行,并且该用户必须对您希望它读取的文件夹具有读取权限。

确保文件夹的权限与将要读取它的用户匹配。


推荐阅读