如何解决如何从已安装的卷中保留文件并使用该文件创建新容器?
我有一个 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 举报,一经查实,本站将立刻删除。