简体   繁体   中英

How to mount a single file in container in kubernetes/docker

I have a single file which I want to mount in the container. The file is present in conf folder which also contains other file but the file I only want to mount is helper.conf . Doing this in docker:

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

Doing this throws below error:

Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type

To resolve this, I created another folder with name config inside conf and used below line:

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

This works perfectly fine. Same is happening with kubernetes . Is it not possible to just mount a single file from a directory where other files are also present. Am I using wrong keywords for this.?

How can I resolve in Kubernetes?

The answer has been provided by @ Ryan Dawson .

The best way to mount a single file in container (in Kubernetes) would be to use ConfigMap:

ConfigMaps allow you to decouple configuration artifacts from image content to keep containerized applications portable.

ConfigMap can be used in this case to create a resource which will allow us to keep the configuration separate from the container image. As the configuration is a set of key-value pairs, it will allow to expose it as an environment variable that can be put inside the container or a volume. After creating ConfigMap, you will have to create a pod where you specify a ConfigMap it can consume to get necessary values. In your situation, as Joel B and Tommy Nguyen specified in this Stack Overflow question :

You could use subPath like this to mount single file into existing directory.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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