I'm sorry to bump this one up a year later, but I've just ran into the same problem, so I hope it helps someone anyway :)
TL;DR
Using the rabbitmq:3-management-alpine image instead of rabbitmq:3-management solved this for me.
Here is my docker-compose.yml:
version: "3.9"
services:
my-rabbit:
image: rabbitmq:3-management-alpine
container_name: my-rabbit
hostname: my-rabbit-host
ports:
- "15672:15672"
- "5672:5672"
volumes:
- "./rabbitdata:/var/lib/rabbitmq"
After running docker compose --detach the management plugin interface and the broker itself become available at http://localhost:15672 (tcp localhost:5672 for broker)
The long story
Using rabbitmq:3-management image with docker-compose.yml produces the following output in docker logs:

The output stops after the last line
01 19:20:07.852760+00:00 [noti] <0.299.0> WAL: ra_log_wal init, open tbls: ra_log_open_mem_tables, closed tbls: ra_log_closed_mem_tables
and neither broker nor management plugin are available.
However, after running the following command (using the same arguments as in docker-compose.yml)
docker run -d --hostname my-rabbit-host -p 15672:15672 -p 5672:5672 --name my-rabbit -v rabbitdata:/var/lib/rabbitmq rabbitmq:3-management
the log actually looks quite different:

One might notice, that the server is actually started, and after that both broker and management UI become accessible!
Now, if we change the image in docker-compose.yml from rabbitmq:3-management to rabbitmq:3-management-alpine (see TL;DR example) and run docker compose up --detach, the log output looks pretty much like it was with docker run ... rabbitmq:3-management, and, once again, both broker interface and the management plugin interface work just fine at localhost using ports 5672 and 15672 respectively.
docker-compose.ymlworks fine for me with no changes. I note that there is a bit of delay between starting the container and rabbitmq actually being ready to service requests.