将只读docker卷的变化反映到容器中?

2023-12-05

我有一个配置文件在运行时使用只读卷注入到 Docker 中。因此容器无法更改配置文件的内容,但主机可以。这个想法是向容器内的进程发送 SIGHUB 以重新加载任何配置更改。然而,Docker 似乎无法检测到配置文件的任何更改,并且似乎看到了容器启动时文件的冻结快照。

这是 Docker 的预期行为吗?


docker 用于主机卷的绑定挂载将 inode 映射到第二个位置。 inode 是 Linux 中指向文件或目录的指针。大多数编辑器的标准过程不是就地修改文件,而是使用新的 inode 创建一个临时文件,然后用具有新 inode 的文件替换现有文件。这可以避免崩溃导致文件处于部分写入状态的损坏。你应该看到这种情况发生ls -i在文件上。

对于绑定挂载,这意味着即使主机看到包含新内容的文件,您仍然可以绑定挂载到原始 inode。您可以通过以下任一方法解决该问题:

  • 绑定挂载整个文件夹而不是仅挂载文件
  • 重新创建容器以获取新的更改(重新启动也可能有效)
  • 编辑文件而不更改 inode

对于后者,命令如下echo new line >>file or cat tmp-file >file将保持相同的索引节点file。您也可以找到编辑器的设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将只读docker卷的变化反映到容器中? 的相关文章

随机推荐

  • pyqtgraph:对齐不同图中x轴的刻度

    这是后续这个问题 问题是当其中一个图重新缩放时如何调整多个 pyqtgraph 的 x 轴缩放 我想要的结果是所有图表的刻度完美对齐 以便您可以直接比较两个图表的内容 给定的答案存档了该任务 即根据变化重新缩放图表 但是当图表的内容不同时
  • 乔达时间:最近一周和一个月

    获取给定日期的最近完整一周和最近完整月份的开始 结束日期的最佳方法是什么 即给定今天的日期 如何找出刚刚完成的一周 一个月也是如此 我得到了解决方案 LocalDate today new LocalDate LocalDate lastW
  • C++ Primer(第 5 版):“16.3 重载和模板”的所有“更专业”示例都是错误的吗?

    C Primer 第 5 版 第 16 3 节 重载和模板 教授在存在候选函数模板实例化的情况下的函数匹配过程 以下是本节中使用的函数模板的声明 using std string template
  • Facebook 开放图谱和元标签

    我有以下输出https developers facebook com tools debug 我添加了locale元标签 因为我有很多无关的财产错误 但这并不能解决问题 Extraneous Property Objects of thi
  • React Native 中的 CameraX 视图 - 无法配置相机

    我正在创建cameraX视图 以便通过桥接来反应本机 普通视图在RN中渲染 桥接流程很好 PreviewView用于显示 CameraX 预览的相机源 我已成功实现预览 但不确定为什么预览未在 UI 上呈现 它只是一个空白屏幕 让我知道 U
  • Django 使用相关实体字段序列化查询集

    我正在尝试加入 2 个实体 从中获取特定字段 然后返回该实体的 JSON 我尝试编写以下代码 import datetime result Foo objects all result result select related bar e
  • 有没有“单项大小的异步任务缓冲区”这样的同步工具?

    在 UI 开发中 我多次以这样的方式处理事件 当事件第一次出现时 我立即开始处理 但如果有一个处理操作正在进行中 我会等待它完成 然后再处理另一个事件 如果在操作完成之前发生多个事件 我只处理最近的一个 我通常的做法是 我的处理方法有一个循
  • 如何允许 Java 客户端 TLS10 连接?

    在尝试使用 Java 16 在 Eclipse 中执行 hello world MSSQL JDBC 连接时 出现以下错误 server selected protocol version TLS10 is not accepted by
  • 如何将mongodb文档中的所有数组元素更改为某个值? [复制]

    这个问题在这里已经有答案了 假设我有以下文档 id ObjectId 5234cc89687ea597eabee675 code xyz tags school book bag headphone appliance qty size S
  • 从aspx网页读取xml

    我们必须从 aspx 页面读取数据 当我们使用查询字符串调用页面时 它会返回一个 xml 文档 其中包含与查询字符串匹配的数据 我们有一个与我们返回的 xml 相匹配的 XSD 我想我们可以从http响应中读取xml文档 这行得通吗 我们怎
  • 从服务访问 UI 线程处理程序

    我正在 Android 上尝试一些新的东西 我需要访问 UI 线程的处理程序 我知道以下几点 UI线程有自己的处理程序 和活套 任何消息都会被放置 进入UI的消息队列 线 Looper 获取事件 并将其传递给处理程序 处理程序处理消息并 将
  • 确保 MATLAB 不会重新计算符号表达式

    我正在构建 我的第一个 MatLab 程序 它需要对方程进行符号微分 然后多次使用此解决方案 使用不同的数字输入 我不希望它每次需要输入一组新的数值时都重新计算符号微分 这可能会大大增加运行该程序所需的时间 鉴于其本质 数字优化器 这可能已
  • MPDF 电子邮件附件发送空白 PDF

    我已经使用 mpdf 成功生成了 PDF 我已通过下载 PDF 进行了验证 但是 当我将 PDF 作为电子邮件附件发送时 我收到 Adob e Reader 的空白 PDF 并显示 内存不足 错误 下面是我的代码
  • 为什么 dart 错误地推断出我的泛型参数类型?

    当我明确地将 mySet 变量等同于 int 集文字时 我似乎无法理解为什么 mySet 变量被推断为具有动态参数类型的通用集 那么这个结果合乎逻辑吗 还是 dart 确实未能推断出泛型集参数类型 main Set mySet 1 2 3
  • Xamarin + Android + 绑定 YouTube 视频播放器编译错误

    我希望将 YouTubeAndroidPlayerApi jar 绑定到我的 Xamarin Android 项目中 我已在 Jars 文件夹下添加了 YouTubeAndroidPlayerApi jar 但我的项目无法编译 错误 不要覆
  • 仅通过意图共享到 LinkedIn 的类名称

    我目前正在 Android 应用程序中为精选的流行平台创建直接意图以共享一些文本 我目前正在尝试获得与 LinkedIn 合作的直接意向 我目前有一个为 Twitter 工作的直接意图 如下所示 shareIntent new Intent
  • 在 Eclipse 中运行单个 JUnit 测试

    如果我有一个包含多个测试的测试套件 当我尝试从代码编辑器的上下文菜单或 JUnit 视图运行单个单元测试时 它似乎坚持始终运行整个套件 而不是单次测试 有没有办法禁用更改此行为 以便我可以要求运行该测试 并且仅运行该测试 在包资源管理器中展
  • 我无法让这个 mysql join 查询产生所需的结果

    三个表的结构 Booking CREATE TABLE booking bookingID int 11 NOT NULL AUTO INCREMENT receipt no int 11 NOT NULL client varchar 3
  • 无法隐式初始化 std::function

    我编写了这个函子来执行and手术 unary functor performs template
  • 将只读docker卷的变化反映到容器中?

    我有一个配置文件在运行时使用只读卷注入到 Docker 中 因此容器无法更改配置文件的内容 但主机可以 这个想法是向容器内的进程发送 SIGHUB 以重新加载任何配置更改 然而 Docker 似乎无法检测到配置文件的任何更改 并且似乎看到了