繁体   English   中英

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

[英]How to keep file from mounted volume and create new container with that file?

我有一个 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 中使用它。

我不确定您必须使用的文件类型

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

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

您还可以按照这个很好的示例来展示如何将文件挂载到 pod 内的卷中。

或者

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM