我希望你过得愉快!
我是码头工人的新手。我认为我的问题与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
目录。
所以问题是:
如何指定在容器目录树中写入文件的路径?
答案 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/
。