Everything inside one docker container or specialized containers

I have been reading about Docker for a long time and tried few examples. While going through blogs, I didn’t find any unanimous answer as whether a product having multiple components like JEE deployables, database, webserver etc should be deployed, in one single container or on different containers. Can someone please provide detailed answer in terms of

  1. Manageability
  2. Complexity
  3. Risk (like data loss, security etc.)
  4. Any other point, welcome

Also will it be worth going Kubernetes route or Docker is still sufficient?

  • Jenkins - Cannot run program “docker”
  • Docker container inaccessible from host
  • logspout write: connection refused
  • Couchbase PHP SDK in Docker Container
  • Docker container calls binary from another container
  • How to force application's stdout logs through uwsgi?
  • How to “start over” with Docker?
  • How to set environment variables via env-file
  • Adding custom settings into boot2docker profile
  • docker command attach running slow
  • Docker disk usage
  • How to saving a Docker container State?
  • One Solution collect form web for “Everything inside one docker container or specialized containers”

    There are alternative views (that may work well depending on your use case) but the official docker stance is one process per container. From my experience, you’ll be able to fit into the docker ecosystem and re-use things more effectively if you go with the grain on that one. However, there are alternative solutions (again, that may work well depending on your use case) such as passenger-docker.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.