These are great point, but as someone who is beginning to think what I can do with containers for my current infrastructure setup, so far my impression is container is not to change the infrastructure, but rather how compute is used.
The meaning and the life cycle of container are no different from having a big virtual machine image, but container technology such as docker has been made blazing quick to start and kill, and I think that's a step forward. Containers in general allows multiple applications live in its own "pretty good" sandbox environment (read about Docker security, as there are many security implications most people don't pay attention to). This is great for truly stateless applications, or ETL applications, for which there is no need for a pool of machines dedicated to just host one specific application. This is not something we can do with big virtual machine unless now you want to invest your time to manage creating different users on the server, carefully writing down UNIX permission, as opposed to understand the security control around using containers (and linking containers). And many people don't pay attention to the size of the base image. Most people probably just use the vanilla Linux (ubuntu/redhat/centos, etc) image, but that kind of Docker image is too big for scaling and testing.
An example of ETL or long running program would be downloading huge files from some on-premise, and upload files to S3 in chunks. If your files are large, you should chunks to your compute. To keep track of progress of thousands of chunks, you need queue and worker nodes. now you've got a fleet of computes, and you want to run everything (worker and primary web applications handling the requests) in parallels, as quickly as possible, as stateless as possible on the compute side, you can leverage containers, plus the use of queues, and a RMDBS for transaction logs. Here container technology such as Docker is useful.
You are right, don't blindly follow the "everything should be containerized" hype, I don't think most people would dare to containerized Cassandra database and fit a big box with Cassandra database and web applications running in production.
Regardless of approach, when it comes to self-healing, highly automated, reproducible, and secure infrastructure:
* service discovery
* access control
* monitoring and insight analysis
* credential management
* version control and management (containers, security patches, container and image life cycle)
are problems we cannot solve with containers without integrating with third-party softwares.
Guess, what, there is no one solution solves these. They are just buzz words and goals we haven't achieved well as a community... even OSS platforms like CloudFoundry and Kubernetes are only able to do the application-side of life cycle to the point of easing deployment, not so much everything else.