当前位置: 首页 > 知识库问答 >
问题:

正在运行的容器找不到它创建到 /home/user/目录的文件

林俊晖
2023-03-14

我希望你今天过得愉快!

我是新来的Docker我想我的问题和docker的目录树有关

我的应用程序将文件写入/home/user目录,然后在一段时间后再次读取该文件。

我的应用程序出现了这个错误。

[error] a.a.OneForOneStrategy - /home/user/bkjw_eqvfohygvkaxoxc-small.jpg
java.nio.file.NoSuchFileException: /home/user/bkjw_eqvfohygvkaxoxc-small.jpg

我的停靠应用程序无法创建文件并读取。我认为Docker将目录/home/user/视为主机的绝对目录。我以为容器会写入容器目录树中的/home/user目录。

所以问题是:

如何在containers目录树中指定写入文件的路径?

共有1个答案

晁璞
2023-03-14

您对目录树的理解是正确的。在docker容器中运行的应用程序将写入容器目录树中的/home/user/

您的问题似乎与权限有关,您的java应用程序可能没有写入容器内的/home/user/的权限。要么你应该改变你想要写入的目录的所有权/权利,要么我在这种情况下做的一个简单的解决方案是在java代码中创建我想要写入的目录。

喜欢:

// Create volume directories explicitly so that they are created with correct owner
Files.createDirectories(Paths.get(dirPath));

如果您的要求不是专门写在/home/user/中,您可以将diPathString设置为类似于/home/user/mydir的内容。

 类似资料:
  • 我使用: 创建目录。虽然,它似乎工作正常(没有异常被抛出)我找不到文件夹/目录在文件系统的任何地方。我做错了什么吗?

  • 我想挂载我的usb驱动器到一个正在运行的docker实例,手动备份一些文件。 我知道的特性,但这会创建一个新的容器。注意:它是一个nextcloudpi容器。

  • 问题内容: 我正在使用以下查询来创建CSV文件 但是当我通过filezilla搜索时,无法在任何地方找到mydata.csv文件。 知道该文件的存储位置吗? 查询成功运行,没有任何错误!有帮助吗? 问题答案: 例如,MySQL可能正在将文件写入其自己的数据目录。要指定路径,请使用完整路径。 但是,该目录必须是运行MySQL服务器守护程序的用户帐户可写的目录。因此,我将经常使用: 指定要写入的路径,

  • 我试图将zip文件导出到一个目录,但遇到一个IOException,指出找不到文件路径。我知道这意味着父目录通常不存在,但是调试文件写入文件的行。getParentFile()。exists()返回true,因此这不是我的问题。更复杂的是,这种情况只发生在大约一半的文件中。通过java解压失败的文件总是相同的,但通过windows解压总是成功的。 以下是我正在使用的代码: 例外情况示例: 有关系统

  • 我试着运行我的android代码,结果出现了以下错误“找不到*.apk”。然后我打开了项目的属性,并取消选中了is library。 当我的手机以调试模式而不是模拟器连接时,我能够运行代码。现在项目目录中没有apk。 为什么会这样??如何让它创造。apk??

  • 一切都很顺利,重新启动后,我下载并执行gdx-setup.jar,填充表单,并导入Eclipse。 没有错误,没有警告,当我尝试运行桌面。(右键单击桌面项目,运行为->Java应用程序)。 我有个错误 效果很好。只有local一个给出错误,也是isLocal和isExternal返回true。 我尝试了很多组合,比如、、、和。 图像badlogic.jpg就在那里,我把它放在多个地方以确保。 现在