微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从已安装的卷中保留文件并使用该文件创建新容器?

如何解决如何从已安装的卷中保留文件并使用该文件创建新容器?

我有一个 docker 容器映像,它要求我挂载一个包含特定配置文件的卷,以便该容器正确启动(此映像不是我可以控制的,而是由供应商提供的)。如果该卷未安装,则容器将退出,因为未找到该文件。所以我需要在/host/folder/中放入一个配置文件,然后:

docker run --name my_app -v /host/folder:/container/folder image_id

然后应用程序将在 /container/folder/ 中查找它需要启动的文件

我想在 /container/folder/ 中使用该文件创建/提交一个新图像,但是当该文件夹作为卷从主机安装时,docker cp 不会帮助我这样做,就我而言试过。我认为,就docker而言,复制到那里的文件与挂载卷中的文件没有区别,并且会在容器停止时消失。

我想这样做的部分原因是文件不会被更改,认情况下应该在那里。另一个原因是我想在 Kubernetes 中运行这个容器,并避免在那里使用持久卷来挂载这些目录。我已经研究过使用 configmaps,但我不知道如何将它们用于此目的。

解决方法

如果您可以将文件存储到 ConfigMap 中,您可以将文件挂载到卷并在 Kubernetes 中使用它。

我不确定您必须使用的 type of file

ConfigMap 会将此文件注入 POD 的卷中,以便应用程序可以访问和使用它。

在这种情况下,不需要 PVC。

您还可以按照 this nice example 展示如何将文件挂载到 Pod 内的卷中。

此外,我不确定 docker 映像,但如果您可以使用该 docker 映像,则可以将文件添加到路径中,例如:

FROM <docker image>
ADD file ./container/folder/

在这种情况下,您可能需要检查是否可以使用供应商 docker 映像作为基础并将文件添加到其中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。