是否可以让 Docker 容器从不使用卷的主机文件系统读取文件?

Is it possible to get a Docker container to read a file from host file system not using Volumes?

我在容器内有一个 Python 脚本,它需要连续读取位于主机文件系统上的文件内不断变化的值。使用卷来装载文件将不起作用,因为这只会捕获当时文件中值的快照。我知道这是可能的,因为 node_exporter container 能够使用 Golang 中的自定义方法读取主机文件系统上的文件。有谁知道完成这个的一般方法吗?

I have a Python script [...] that needs to continuously read changing values inside a file located on the host file system.

就运行吧。大多数 Linux 系统都预装了 Python。这里不需要 Docker。如果您的应用程序有 Python 需要安装的库依赖项,您可以使用 Python 虚拟环境等工具。

Is it possible to get a Docker container to read a file from host file system not using Volumes?

你需要某种坐骑,也许是 bind mountdocker run -v /host/path:/container/path image-name。执行此操作时请确保不要覆盖映像中的应用程序代码,因为挂载将完全隐藏底层映像中的任何内容。

没有绑定挂载,您根本无法访问主机文件系统。这种文件系统隔离是 Docker.

的一个关键特性

...the [Prometheus] node_exporter container...

阅读问题中的 GitHub link,“不建议将其部署为 Docker 容器,因为它需要访问主机系统。” docker run 示例使用绑定挂载访问整个主机文件系统,绕过 Docker 的文件系统隔离。