Summary
Containers are very helpful for creating portable applications. Docker Compose and orchestrators such as K8s come in handy to compose and deploy complex applications. All of this leads to scaling individual parts of the system more easily than ever before.
Containers also come in handy to automate end-to-end testing since you can spawn the whole cluster, run tests against it, then tear it down.