Modules are containers that define an AngularJS application and hold parts like controllers, services, and directives. A module is used as the main entry point and starting point of an app. Controllers must belong to a module to avoid issues like global overriding. To create a module, use the angular.module method, passing in a name and empty array. Controllers can then be added to the module using the module's controller method.