How to Mount a Host Directory in a Docker Container?

Better Stack Team
Updated on August 1, 2022

If you want to mound a host directory in a Docker container, you have to main ways to do that:

Using the ADD command:

The simplest way is to use the dockers ADD command as shown below:

ADD . /path/inside/docker/container
Copied!

This command will copy the files from the current working directory to the path in the docker container specified in the command.

However, any changes made to this directory on the host after building the dockerfile will not show up in the container. This is because when building a container, docker compresses the directory into a .tar and uploads that context into the container permanently.

Mount a volume

The second way to do this is to mount a volume. Due to docker trying to be as portable as possible, you cannot map a host directory to a docker container directory within a dockerfile, because the host directory can change depending on which machine you are running on. To map a host directory to a docker container directory you need to use the -v flag when using docker run

docker run \
    -v /tmp:/container/directory \
    <container> \
    ls /container/directory
Copied!
Got an article suggestion? Let us know
Explore more
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

We are hiring.

Software is our way of making the world a tiny bit better. We build tools for the makers of tomorrow.

Explore all positions →

Reliability is the
ultimate feature

Delightful observability tools that turn your logs & monitoring into a secret weapon for shipping better software faster.

Explore Better Stack