Setting up using Docker

Yes, definitely - every application group should have it’s own directory with it’s own docker-compose files, that’s the easiest way to make sure there are no overlappings.
Alternatively, you can rename the docker-compose.yml from mattermost to mattermost-docker-compose.yml and so on and spawn it up in a shared directory then.
The containers itself will not interfere with each other, as long as they do not have the same names, port or volume mappings, so you cannot bind two nginx containers on port 80 locally of your system, because as soon as the first one bound to it, the other one won’t be able to acquire a lock on the socket.