I would appreciate if somebody can give the differences between a server and container. Thanks
A single server can host multiple containers, as a way of isolating J2EE applications. For example, an single EJB server may have multiple EJB containers, preventing crashes in one EJB container from effecting the other. Ditto for web containers.
In theory, you can even host the exact same code in multiple containers, as a way of getting fail-over on a single server on one machine. This is unusual, though; most of the time fail-over is handled by server clusters of multiple machines.