If not why boot2docker cannot be used in production ? what is the thing, coreOS brings that boot2docker doesn't have ?
boot2docker is the name of the Linux (tinyCore) VM used in non-Linux host (by, for instance, docker machine
).
If you go into production with Docker, it is best to do so on Linux host (where you don't need boot2docker anyway).
After that, it depends on your production environment: if it is a complex one (where clustering and service replication is a concern), then CoreOS proposes a platform (which does support docker): see "7 reasons why you should be using CoreOS with Docker"
CoreOS is a barebones Linux distribution designed to make large multiple-machine deployments, using different softwares and dependencies, easier to scale and easier to manage. It is built for high availability and security.
It does not come with a package manager and thus requires containers such as those provided by Docker.
It uses "fleet" for cluster management and "etcd" for service discovery and keeping configuration up to date across the cluster.