python - 是否可以让 Docker 容器从不使用卷的主机文件系统中读取文件?
问题描述
我在一个容器中有一个 Python 脚本,它需要不断地读取位于主机文件系统上的文件中的变化值。使用卷来挂载文件将不起作用,因为那只会捕获当时文件中值的快照。我知道这是可能的,因为node_exporter 容器能够使用 Golang 中的自定义方法读取主机文件系统上的文件。有谁知道实现此目的的一般方法?
解决方案
我有一个 Python 脚本 [...] 需要不断读取位于主机文件系统上的文件中的变化值。
运行它。大多数 Linux 系统都预装了 Python。你在这里不需要 Docker。如果您的应用程序具有需要安装的 Python 库依赖项,则可以使用 Python 虚拟环境等工具。
是否可以让 Docker 容器从不使用卷的主机文件系统中读取文件?
你需要某种挂载,也许是绑定挂载;docker run -v /host/path:/container/path image-name
. 确保在执行此操作时不要覆盖映像中的应用程序代码,因为挂载将完全隐藏底层映像中的任何内容。
如果没有绑定挂载,您根本无法访问主机文件系统。这种文件系统隔离是 Docker 的一个关键特性。
... [Prometheus] node_exporter 容器...
从问题中的 GitHub 链接阅读,“不建议将其部署为 Docker 容器,因为它需要访问主机系统。” 那里的docker run
示例使用绑定挂载来访问整个主机文件系统,绕过 Docker 的文件系统隔离。
推荐阅读
- android - 存储在 Room 表中的设置在任何参数更新时触发所有观察者
- java - org.springframework.beans.factory.BeanCreationException 用于 HibernateTemplate 类依赖注入
- jenkins - Jenkins Github-plugin 无法创建 webhook
- mysql - TimeStamp CURRENT_TIMESTAMP 显示不正确的时间(提前 2 小时)
- xcode - 如何修复 install_name_tool:无法在 xcode 10.2 中打开文件
- android - 如何更改图像视图的半径模糊
- c# - 如何在 TreeView,wpf 中将组合框添加为 TreeViewItem?
- ionic4 - Ionic4 输入类型号接受验证
- javascript - 由于 CORS 问题,通过浏览器的 JS-IPFS http 客户端失败
- django - django服务器的持续部署