Deploy each branch to a Docker Container - Best practice?

Hi there,
I am currently working on a project which I want to use Gitlab CI / CD for. I’m lacking experience in this area, so my question may seem obvious to some of you folks.
My project is a web application and due to to some of its core features it will be nearly impossible to deploy on my personal computer. Therefore I want to use a server to build and deploy every branch in my repository. I have set up the CI pipeline successfully, but I’m not sure how to proceed with deployment. Ideally there would be one docker container for each branch which runs the current code in this very branch. As soon as there is another push to the branch, the current container should be replaced by a new deployment. In addition I would need some way to access each of those docker containers, so different software versions can be tested simultaneously.
What is the best approach to my problem?

Thanks in advance