如何通过Docker容器访问文件夹主机?

时间:2019-12-17 09:05:02

标签: java scala docker jenkins containers

我实际上陷入了共享文件的问题。

我想访问我的主机文件夹,所以我在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。

我读了the docker volumes documentation

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

在容器内,卷路径为/var/tmp

然后您的代码应为:

val folders: Array[File] = new File("/var/tmp/") 
  .listFiles
  .filter(_.isDirectory)

您可以在提供的链接上找到有关Docker卷绑定语法的详细信息:

-v或--volume:由三个字段组成,用冒号(:)分隔。 这些字段的顺序必须正确,并且每个字段的含义也不是立即显而易见的。

  • 对于绑定安装,第一个字段是主机上文件或目录的路径。
  • 第二个字段是文件或目录在容器中的安装路径
  • 第三个字段是可选字段,并且是逗号分隔的选项列表