Directly host multiple applications on a server is almost impossible, each application has its own dependencies and own configuration
A old solution is using Virtual Machine (VM). Each VM is an independent operating system. Expensive overhead
Docker/Kubernetes host an application with containers. Each container is a running Linux system. Containers are running on a Docker server or Kubernetes server which is an application running on the operating system. Low overhead