Docker Data Storage - Bind Mounts

Q

How to create a new Bind mount to a Docker container?

✍: FYIcenter.com

A

Bind mounts may be stored anywhere on the host system. They may even be important system files or directories. Non-Docker processes on the Docker host or a Docker container can modify them at any time.

You have two options "--volume" and "--mount" on the "docker container create/run" command to create bind mounts.

"--volume ...:..." Option - Allows you to create a new bind mount to the new Docker container with default configuration.

"--mount type=bind,..." Option - Allows you to create a new bind mount to the new Docker container with specific configurations.

For example, the following command "docker run --volume" runs a new container with host's /tmp mounted to docker's /tmp.

fyicenter# docker run --volume /tmp:/tmp -tid --name fyi_test alpine

fyicenter# docker exec -ti fyi_test /bin/sh

/ # df -h 
Filesystem                Size      Used Available Use% Mounted on
overlay                  50.0G     22.3G     27.7G  45% /
tmpfs                    64.0M         0     64.0M   0% /dev
tmpfs                     3.7G         0      3.7G   0% /sys/fs/cgroup
shm                      64.0M         0     64.0M   0% /dev/shm

/dev/mapper/cl-root      50.0G     22.3G     27.7G  45% /tmp

/dev/mapper/cl-root      50.0G     22.3G     27.7G  45% /etc/resolv.conf
/dev/mapper/cl-root      50.0G     22.3G     27.7G  45% /etc/hostname
/dev/mapper/cl-root      50.0G     22.3G     27.7G  45% /etc/hosts
...

/ # ls -l /tmp
  drwxr-xr-x    2 1000     1000     20  hsperfdata_fyicenter
  drwx------    2 1000     1000     27  ssh-BSGkGtPZOO

/ # exit

fyicenter# docker container stop fyi_test
  fyi_test

fyicenter# docker container rm fyi_test
  fyi_test

If you want to create a new bind mount as read only, you need to use the "docker run --mount type=bind,readonly,..." option as shown below.

fyicenter# docker run --mount type=bind,readonly,source=/tmp,destination=/tmp \
  -tid --name fyi_test alpine

fyicenter# docker exec -it fyi_test /bin/sh

/ # df -h
Filesystem                Size      Used Available Use% Mounted on
overlay                  50.0G     22.3G     27.7G  45% /
tmpfs                    64.0M         0     64.0M   0% /dev
tmpfs                     3.7G         0      3.7G   0% /sys/fs/cgroup
shm                      64.0M         0     64.0M   0% /dev/shm

/dev/mapper/cl-root      50.0G     22.3G     27.7G  45% /tmp
...

/ # exit

fyicenter# docker container stop fyi_test
  fyi_test

fyicenter# docker container rm fyi_test
  fyi_test

 

Docker Data Storage - Multiple Mounts

Docker Data Storage - Volume Mounts

Managing Data Storage in Docker

⇑⇑ Docker Container Platform - Tutorials

2021-08-15, 180👍, 0💬