Sorry for nitpicking, but I think the central value proposition of microservices/SOA is that you communicate with you backend via well-defined network protocols rather than eg. procedure calls so that the client and server technology stack doesn't matter.
- you can keep a service running long after the project that created it has disbanded and/or the runtime and build environment is deprecated on a given O/S
- you don't necessarily need to deep-dive into the business logic of legacy services
- you can replace a service implementation with another one running on another stack without having to adapt service clients
- you can change auth mechanism outside of the service implementations
- you can scale out (CPU-bound) services onto multiple hosts
Mind you, these benefits are not achieved by using microservices/SOA in itself; the contribution of microservices/SOA, however, is that these design goals aren't impossible to achieve because of architected reasons.
Containers have nothing to do with it.