如何从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