繁体   English   中英

如何在kubernetes / docker中的容器中挂载单个文件

[英]How to mount a single file in container in kubernetes/docker

我要在容器中挂载一个文件。 该文件位于conf文件夹中,该文件夹还包含其他文件,但是我只想挂载的文件是helper.conf 在Docker中执行以下操作:

docker run -it -v /path/to/dir/:/path/inside/container --name mycontainer dockerimage

这样做会引发以下错误:

您是否正在尝试将目录挂载到文件上(反之亦然)? 检查指定的主机路径是否存在以及是否为预期的类型

为了解决这个问题,我在conf创建了另一个名为config文件夹,并在下面的行中使用:

docker run -it -v /path/to/dir/config:/path/inside/container --name mycontainer dockerimage

这工作得很好。 kubernetes也是如此。 是否无法仅从还存在其他文件的目录中挂载单个文件。 我为此使用了错误的关键字吗?

如何在Kubernetes中解决?

答案已由@ Ryan Dawson提供

在容器中(在Kubernetes中)安装单个文件的最佳方法是使用ConfigMap:

ConfigMap允许您将配置工件与图像内容分离,以使容器化的应用程序具有可移植性。

在这种情况下,可以使用ConfigMap创建资源,这将使我们能够将配置与容器映像分开。 由于配置是一组键值对,因此它将允许将其公开为可放入容器或卷内的环境变量。 创建ConfigMap之后,您将必须创建一个pod,在其中指定一个ConfigMap,以获取必要的值可以使用它。 根据您的情况,如Joel BTommy Nguyen在此Stack Overflow 问题中所指定的:

您可以使用像这样的subPath将单个文件装载到现有目录中。

暂无
暂无

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

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