Viewport:
A dedicated container for the Visual application area (browser window).
Viewport renders itself to the Documet body area of the Web page and automatically adjusts itself to the size of the browser window, automatically adapting to size when the window size changes. Only one viewport can be created in a page.
Any container container can be used as a sub-component of a viewport, and developers use a viewport as the parent container to configure layout layouts and manage their size and location.
Container:
Any base class that may contain other ext.component components is not size by default, so be sure to configure the layout, size, and position for the container.
Panel:
A panel is a container that has specific features and structural components that enable it to perfectly create parts for the application-oriented user interface. Panel inherits from Ext.container.Container,
You can set up your own layout layouts , and you can include sub-components.
Introduction to ExtJS learning basic containers