If your application only uses one database in production, you probably don't want to use an ORM, because that might prevent you from using all of your db’s features.
The testcontainer is agnostic to how you use it; it's a real docker container.
Sure, but you may want to use different databases as your application may be expected to be deployed in different environments. I like to keep some of my apps db-agnostic, so I test with postgres in a testcontainer and sqlite outside of one to ensure consistency.