我有一个要挂载在容器中的文件。该文件位于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中解决问题?
答案 0 :(得分:1)
答案已由@ Ryan Dawson提供。
在容器中(在Kubernetes中)装载单个文件的最佳方法是使用ConfigMap:
在这种情况下,可以使用ConfigMaps允许您将配置工件与映像解耦 内容以保持容器化应用程序的可移植性。
ConfigMap创建资源,这将使我们能够将配置与容器映像分开。由于配置是一组键值对,因此它将允许将其公开为可放入容器或卷内的环境变量。创建ConfigMap之后,您将必须创建一个pod,在其中指定一个ConfigMap,以获取必要的值可以使用它。 根据您的情况,在此堆栈溢出Joel B中指定了Tommy Nguyen和question:
您可以使用此类子路径将单个文件安装到现有目录中。