cp太慢了,和rsync一样(我假设) – 有没有办法在两个地方共享文件?

我使用的是Docker,Docker不能将符号链接的文件复制到图像中。 但是符号链接的文件不在“构build上下文”中。 所以我打算用cp将它们复制到构build上下文中,但是这非常慢。 有没有办法在磁盘上的两个不同的位置共享文件,而不必复制它们,也不需要使用符号链接?

你可以使用reflinks'cp –reflink = always'来复制,这将创build一个引用静态原始文件的差异文件。 如果你这样做,你可能会想要使原始的不可变,所以重新链接的副本不会得到borked。

或者,您可以使用LVM快照等function快速创build/克隆原始文件的差异文件系统。 瘦LVM对于这种方法来说是最好的,你可以通过挂载快照来完成这个任务,而不是像我们传统上那样使用快照来回滚原始卷。 使用LVM将比重新链接的副本更安全,因为通过更新具有原始更新的所有快照,可以正常处理原始更改。

第三,你可以快照BTRFS子卷。 这是两全其美的,因为它是一个文件系统或文件级别的快照机制,不需要单独pipe理卷pipe理器的两个文件。 这个过程与LVM非常相似,因为您可以随时随地安装子卷。

最后,你考虑过NFS吗? 在容器映像中指定NFS连接是获取共享存储的好方法。