I am still not clear what you mean by “many applications”. Are you trying to run multiple applications in a single container? It can be done but is not recommended. As far as exposing a port for the application, -p works well for command line. For running multiple applications in multiple containers you can go through ‘Docker Compose’ and add multiple ports in the docker-compose.yml file.
If you are looking for deployment of multiple applications, you can look into ‘Ansible docker_container’ which also enables you to expose multiple ports, as well as, automate your deployment.