【问题标题】:Unable to delete the files given by Docker with mounted volume无法删除 Docker 提供的带有已安装卷的文件
【发布时间】:2019-12-05 21:25:13
【问题描述】:

我正在运行一个 python 脚本,该脚本使用一些 API 和 docker run 命令下载 CSV 文件。

我正在使用一个 Dockerfile 来安装所有操作系统级别的依赖项和要求。

创建构建后,我将使用以下命令:

docker run -v $(pwd)/Reports:/usr/src/app/Reports --rm ImgName python myScript.py -d 2015-11-25

如上述命令中所述,我有一个名为 Reports 的目录。 我已经用 Docker 挂载了那个目录。 脚本成功执行并下载 CSV 文件,但问题是,下载的 CSV 文件处于只读模式。我无法删除它。 我需要灵活地删除通过脚本下载的任何文件。

  • 注意:当我在没有 docker i.e. python myScript.py 的情况下运行脚本时,我可以读取、写入和删除文件。*

我们将不胜感激任何反馈。

【问题讨论】:

  • 请澄清,您不能从 docker 容器外部访问文件?您使用的是什么操作系统?
  • 我使用的是 Ubuntu 18.04
  • 您需要在$(pwd)/Reports 上设置正确的权限,例如775
  • 我该怎么做?你能帮我完整的命令吗?

标签: python docker


【解决方案1】:

您可以使用您自己的用户使用以下命令运行 docker:

docker run --user $(id -u):$(id -g) ...

这将使容器以您的用户身份运行,并且所有文件都将使用正确的所有者创建(请参阅docker run docs)。不要忘记删除您已有的文件或为此创建一个新文件夹

【讨论】:

  • 不工作!! PermissionError: [Errno 13] Permission denied: '/.cache'
  • 您可能在上次运行时留下了该文件。可以在干净的文件夹中运行吗?
猜你喜欢
  • 2021-05-08
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-08
相关资源
最近更新 更多