如何从Docker容器将数据写入主机文件系统

我有一个Docker容器,它运行一些代码并创build一些HTML报告。 我希望将这些报告发布到主机上的特定目录中,即在/usr/share/nginx/reports

我这样做的方式是将此主机目录挂载为数据卷,即docker run -v /usr/share/nginx/reports --name my-container com.containers/my-container

但是,当我进入主机,并检查目录/usr/share/nginx/reports ,我没有看到任何报告数据。

难道我做错了什么?

主机是一个Ubuntu服务器,而Docker容器也是Ubuntu,没有boot2docker的奇怪点在这里。

从“ pipe理容器中的数据 ”中,将主机文件夹挂载到容器将是:

 docker run -v /Users/<path>:/<container path> 

(请参阅“ 将主机目录挂载为数据卷 ”)

仅使用-v /usr/share/nginx/reports将声明内部dontainerpath/usr/share/nginx/reports为一个卷,但与主机文件夹无关。

我在Windows上使用Docker工具箱。 我正在使用Docker开发Spring Boot应用程序。 我的应用程序将日志写入

 users/path/service.log 

所以当我从主机terminal开始我的应用程序日志文件已成功更新。 但同样,当我在docker上没有创build文件,也没有更新。

所以我改变了我的日志文件的位置,以配合容器的目录

 var/log/service.log 

我再次启动我的容器,我的文件再次更新。

只要与容器目录匹配,就可以select任何位置。 只要打开容器,看看有什么适合你。

下一步是将日志文件从容器复制到主机。

所以为了将这些日志复制到你的主机。 你可以用我知道的两种方法之一 –

1-在Docker中使用

2-使用以下Docker命令将文件从docker容器复制到host-:

 docker cp <containerId>:/file/path/within/container /host/path/target