In Docker, Volumes are a mechanism used to store data generated by the container, this mechanism can help you restore your data in case of a container failure or unwanted shut down of the container.
The way they work is by specifying a path on the host where the container can persist its data and there are different ways to mount a volume

1 - Using Docker run

        docker run -v path_host:/path_container image-name

Example :

        docker run -v ~/backup:/var/www/html my_app

2 - Using Docker compose
In the docker-compose.yml file, a typical volume setup might look like this:

          image: mysql:5.7
          container_name: mysql
            - 3306:3306
            - "./backup/mysql:/var/lib/mysql/"

In this example, we create a MySQL container with a volume to back up the database.
Notice the colon : That separates two paths.
- The left side of the colon represents your local folder as a relative path.
- The right side represents a folder in your Docker container.