java - 如何通过 docker 容器访问文件夹主机?
问题描述
我实际上遇到了共享文件的问题。
我想访问我的主机文件夹,所以我在我的 Jenkinsfile 中做了这样的事情:
sh "sudo docker run -d -it -p 16000:16000 -v /PATH/TO/MY/HOST/FOLDER/:/var/tmp --name botvolume MY_IMAGE"
在我的 scala 类中,我试图通过以下方式获取所有文件夹:
val folders: Array[File] = new File("/PATH/TO/MY/HOST/FOLDER/")
.listFiles
.filter(_.isDirectory)
但它不起作用,它返回一个等于 0 的大小。
我阅读了 docker 卷文档
有人能帮我吗?
解决方案
在容器内,卷路径是/var/tmp
那么你的代码应该是:
val folders: Array[File] = new File("/var/tmp/")
.listFiles
.filter(_.isDirectory)
您可以在您提供的链接上找到有关 Docker 卷绑定语法的详细信息:
-v 或 --volume:由三个字段组成,以冒号字符(:) 分隔。字段必须按正确的顺序排列,每个字段的含义不是很明显。
- 在绑定挂载的情况下,第一个字段是主机上文件或目录的路径。
- 第二个字段是文件或目录将在容器中挂载的路径。
- 第三个字段是可选的,是以逗号分隔的选项列表
推荐阅读
- hive - 使用 ORC 格式将事件从 kafka 写入 Hive
- symfony - Symfony 4 在 Normalizer 中禁用 CamelCase
- c# - OWIN 如何配置 /signout-oidc 以删除 cookie
- android - Flutter:失去与设备的连接(生产应用程序)
- javascript - 初始变量未在减速器中定义
- python - 打印出特定文本时如何停止运行工具?
- primefaces - p:datascroller 只延迟加载一次
- swift - 在 SwiftUI 中设置切换颜色
- python - 如何获得整数的倒数?
- java - 通过 http post 下载文件正在返回 zip 文件内容