在Docker上向/从主机系统写入和读取文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Docker上向/从主机系统写入和读取文件相关的知识,希望对你有一定的参考价值。
语境:
我有一个Java Spring Boot应用程序,它已部署在Docker Container上运行。我使用Docker Toolbox是准确的。该应用程序公开了一些REST API来上传和下载文件。该应用程序在Docker上运行正常,即我可以使用API上传和下载文件。
问题:
- 在应用程序中,我将路径硬编码为“C: SomeFolder”。这个存储在Docker容器上的位置是什么?
- 在Docker上运行时如何强制应用程序使用Host文件系统而不是Docker的File系统?
这一切都是由Docker Volumes完成的。
在Docker文档中阅读更多相关内容:
https://docs.docker.com/storage/volumes/
在应用程序中,我将路径硬编码为“C: SomeFolder”。这个存储在Docker容器上的位置是什么?
c:SomeFolder
,假设你有一个Windows容器。但是,这是您通常通过命令行选项或环境变量设置的参数类型。
在Docker上运行时如何强制应用程序使用Host文件系统而不是Docker的File系统?
使用docker run -v
选项或等效选项从该位置的主机安装某个目录。无论主机上该目录的内容是什么,都将在启动时替换容器中的内容,之后主机中的更改应反映在容器中,反之亦然。
如果您有机会重新考虑此设计,那么围绕文件所有权等存在许多潜在的问题。解决这些问题的最简单方法是将数据存储在某个地方,例如数据库(可能在Docker中运行,也可能不运行),并使用网络I / O向容器发送数据或从容器发送数据,并尽可能少地存储在容器中。容器文件系统。 docker run -v
是一种很好的方法,可以在典型的面向服务器的用途中注入配置文件并获取日志文件。
以上是关于在Docker上向/从主机系统写入和读取文件的主要内容,如果未能解决你的问题,请参考以下文章