Search code examples
dockerdocker-composedocker-volume

Named volumes on desired location


I need to store the project on the mounted drive using the docker-compose file, placed at the root of that drive. I want to use docker volumes, not as bounded folders, but as named volumes. But I do not want to store it physically on the default location (/var/lib/docker/volume), because the system drive is small. How can I set up named volumes in docker-compose and ask the docker to create volumes in the same place where the docker-compose file is located?


Solution

  • Recommended: If system drive is small then you should move the docker data-root to some other location. This will keep compose file same across all users/systems.

    Not Recommended: For having a named volume on desired location, you can specify driver_opts for the volume driver.

    e.g. for local driver, declare top level volumes in compose file as

    volumes:
      my_volume:
        driver: local
        driver_opts:
          type: none
          device: "/full/host/path/"
          o: bind
    

    This change will apply to all systems your docker compose is used, with small system drives or large.