Mei*_*ham 1 docker mounted-volumes docker-compose
我有一个配置文件在运行时使用只读卷注入到 Docker 中。因此容器无法更改配置文件的内容,但主机可以。这个想法是向容器内的进程发送 SIGHUB 以重新加载任何配置更改。然而,Docker 似乎无法检测到配置文件的任何更改,并且似乎看到了容器启动时文件的冻结快照。
这是 Docker 的预期行为吗?
docker 用于主机卷的绑定挂载将 inode 映射到第二个位置。inode 是 Linux 中指向文件或目录的指针。大多数编辑器的标准过程不是就地修改文件,而是使用新的 inode 创建一个临时文件,然后用具有新 inode 的文件替换现有文件。这可以避免崩溃导致文件处于部分写入状态的损坏。您应该会ls -i在文件中看到这种情况发生。
对于绑定挂载,这意味着即使主机看到包含新内容的文件,您仍然可以绑定挂载到原始 inode。您可以通过以下任一方式解决该问题:
对于后者,像echo new line >>file或 这样的命令cat tmp-file >file将在 上保留相同的索引节点file。您也可以找到编辑器的设置。
| 归档时间: |
|
| 查看次数: |
1341 次 |
| 最近记录: |