Technology

#How to Mount or Symlink a Single File in a Docker Container – CloudSavvy IT

Table of Contents

“#How to Mount or Symlink a Single File in a Docker Container – CloudSavvy IT”

Docker volume and bind mounts are used to bind directories on the host OS to locations in the container’s file system. While they’re commonly used to mount entire directories, you can also use them to symlink individual files.

Symlink to Docker From The Host

Mounting entire directories works well if you’re overwriting a whole list of config files, but if you just want to target one, you’ll need to use a single-file mount. This is also useful if you want to have multiple mounts into the same directory, but from different locations. It works much like a regular Linux symlink, except it’s handled through Docker and crosses the bridge between host and container filesystem.

Normal Docker volume mounts require you to mount to a target directory, within which the volume will be linked to.

docker volume create nginx-config

docker run -d 
--name devtest 
--mount source=nginx-config,target=/etc/nginx 
nginx:latest

However, with bind mounts, the source can be a directory or file on the host. Volume mounts don’t support this, and while you usually want to use them, you must use the lower level bind mounts if you want to mount single files.

To do this, you can run the container with the flag --mount type=bind , which support individual files if you specify the path:

docker run -it 
--mount type=bind,source=/path/file.cfg,target=/etc/example/file.cfg 
nginx sh

Alternatively, if you really wanted to use Docker volumes, you could make a volume with just the file you plan to mount, mount it to a temporary directory in the container, and then create an actual symlink inside the container (in the Docker build script) that would link to the temp directory with the file. That’s probably a worse solution than a bind mount overall, but it does allow you to store the data through the Docker volume API.

If you liked the article, do not forget to share it with your friends. Follow us on Google News too, click on the star and choose us from your favorites.

For forums sites go to Forum.BuradaBiliyorum.Com

If you want to read more like this article, you can visit our Technology category.

Source

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button
Close

Please allow ads on our site

Please consider supporting us by disabling your ad blocker!