Profiles: Every configuration change or extension has to be added in every profile to keep in sync manually across different Firefox instances.
Containers: Use the same configuration and extensions across different containers in one running Firefox instance.
Both retain configuration and extensions between traditional browser sessions (start/stop). Containers additionally "retain" configuration and extensions across contextual sessions/identities.