According to the Oracle website, containers provide an interface between a component and the low-level platform-specific functionality that supports the component. Before a web component, enterprise bean, or application client component can be executed, it must be assembled into a J2EE module and deployed into its container.
Container types include:
Applet container - manages applets that run on the client.
Application client container - manages the execution of application components that run on the client.
Enterprise JavaBeans (EJB) container - manages the execution of enterprise beans for J2EE applications.
Web container - manages the execution of servlet components for J2EE applications.