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?

  • Docker Swarm discovery is still relevant?
  • Graylog2 Docker unable to start
  • Docker External File Access Not in /Users/ on OSX
  • ssh Client into boot2docker
  • How to connect to 'real' localhost from inside my VM boot2docker container?
  • Spark Job Server not able to read text files in Docker Server
  • boot2docker - add corporate certificate authority
  • collectd data not showing in influxdb container
  • Unable to download docker golang image: No command specified
  • java -jar lib/kvstore.jar ping - ConnectException when using IPAddress
  • Execute two commands with docker exec
  • How to share data between host and containers using volumes in Docker Compose
  • 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.