How can I only show the first image of an image field in the teaser?
Create a custom image formatter by copying the default ImageFormatter.php from the image module into a new custom module, rename everything properly and then add only one simple break; at the last line of the foreach in viewElements(). Choose that formatter under display settings for your teaser view mode of your content type. Works in views, too.

Done that for you in a quick custom module: image_first_formatter.