Volumes Not Mounting with Docker-Compose
If you let docker-compose manage the volumes for you, the volumes names in docker-compose.yml will not be the final ones created/used in docker. docker-compose will prepend the volumes names with the compose project name, which is by default the name of the folder holding the compose file. This is to allow separate projects to use the same names without conflict. For information, you will get the same naming convention for networks.

To get your data back correctly in your compose project, you have two choices.

Prefered in your case: Move data to automated volumes.

This will preserve the default compose volume management in your future runs.


stop any running container using any of those volumes
launch a dummy container not having mysql (e.g. busybox) and mount all 4 volumes in separate identifiable paths
empty all volumes created by docker-compose
copy all data from "docker only" volumes to "compose" volumes.
stop and recycle your dummy container.
docker-compose up -d and enjoy.
if all went good and smooth, delete the other unneeded volumes.


If you know what your doing: use external volumes

This will work as well but please check the documentation (Ctrl-f "Volume configuration reference") for details. Specifically, be aware that docker-compose up -d will no longer try to create the unexisting volumes and fire an error and stop if they don't exist.

Simply change you volume section at the end of your file to:

volumes:
  db-data-user:
    external:
      name: db-data-user
  db-data-system:
    external:
      name: db-data-system