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

时间:2018-08-08 07:43:11

标签: docker kubernetes containers host mount

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

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

这样做会引发以下错误:

  

您是否正在尝试将目录挂载到文件上(反之亦然)?校验   如果指定的主机路径存在并且是预期的类型

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

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

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

如何在Kubernetes中解决问题?

1 个答案:

答案 0 :(得分:1)

答案已由@ Ryan Dawson提供。

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

  

ConfigMaps允许您将配置工件与映像解耦   内容以保持容器化应用程序的可移植性。

在这种情况下,可以使用

ConfigMap创建资源,这将使我们能够将配置与容器映像分开。由于配置是一组键值对,因此它将允许将其公开为可放入容器或卷内的环境变量。创建ConfigMap之后,您将必须创建一个pod,在其中指定一个ConfigMap,以获取必要的值可以使用它。 根据您的情况,在此堆栈溢出Joel B中指定了Tommy Nguyenquestion

  

您可以使用此类子路径将单个文件安装到现有目录中。