如何在Docker图像上进行特定于主机的自定义



让我用一个愚蠢的示例解释我想要什么:

进行" Docker Pull"将图像下载到主机之后,我想在此图像上创建一个文件/etc/myName以具有此主机的确切名称。结果,在此主机上运行此图像的所有容器都可以通过读取/etc/myName找到主机名。

plus,我希望在此主机上共享文件/etc/myName。我知道我可以轻松地在每个容器中分别创建此文件,但这不是我想要的。

(同样,这只是一个愚蠢的示例。我实际上不需要存储主机名。我想将大量主机特定数据存储在共享文件中,不使用的情况下共享卷(。

我可以自己手动创建文件,其中$ dir是图像的最高层:

dir=17024e41f8b6c958c5c9e60bffa8b6c8b2da5a1235b6e18085d5059f9602f605
echo $HOSTNAME > /var/lib/docker/aufs/diff/$dir/etc/myname

但是,有没有少的方法可以做到这一点?

最简单的方法是使用共享卷,而这实际上是当前唯一的方法。我假设您知道在Docker中的绑定安装,但我会在这里显示以防万一。

docker run命令以及通过-v <volume name>:<path in container>您也可以通过<path on host>:<path in container>。因此,您可以将元数据放在每个主机上的同一位置,然后将其绑在容器中。

最新更新