---
tags: [docker]
created: Sunday, May 04, 2025
---

# Docker volumes

> This is a WIP re-write of [Docker Storage](./Docker_storage.md).

## _Bind mounts_ versus _named volumes_

Mostly when I use Docker in production I am using bind mounts rather than named
volumes.

With bind mounts you explicitly map a path on the host to a path within the
container. For example, in a Docker Compose:

```yml
services:
  rocketchat:
    volumes:
      - /mnt/storagebox_alpha/rocketchat/mongo/db:/data/db
```

Here, the DB data for the RocketChat container is mapped to a drive in the
`/mnt` directory on the actual server.

When you use bind mounts you do not need to include a `volumes` section in the
Compose file.

In contrast _named volumes_ let Docker manage the storage on the host. You
specify a name, but Docker decides where the data is stored. (Typically, this
will be in `/var/lib/docker/volumes`.)

The equivalent to the previous example as a named volume:

```yml
services:
  rocketchat:
    volumes: rocketchat-db:/data/db

volumes:
  rocketchat-db:
```
