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

时间:2018-04-17 03:48:39

标签: docker docker-compose

我希望你过得愉快!

我是码头工人的新手。我认为我的问题与docker's directory tree

有关

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

我的应用程序出现此错误。

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

我的dockerized app无法创建文件并阅读。我在想Docker将目录/home/user/视为主机的绝对目录。 我以为容器会写入容器目录树中的/home/user目录。

所以问题是:

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

1 个答案:

答案 0 :(得分:1)

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

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

喜欢:

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

您可以将dirPath字符串设置为/home/user/mydir,如果您的要求不是专门写入/home/user/

相关问题