[英]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.