Recently, I found that Docker is very popular. It seems that all services can be put into Docker. It seems that Docker has many different systems. Is Docker also a virtual machine (VM) technology? I think Docker’s images are very small, is it a simplified virtual machine?
Docker is a so-called operating system-level lightweight virtualization technology compared with full virtualization and semi-virtualization. The traditional virtualization technology takes a long time to generate an environment. For docker, the startup and destruction are of the second order. Moreover, the underlying technology lxc(linux container) is completely kernel characteristic, without any intermediate layer overhead, and the utilization rate of resources is extremely high. Its performance is close to that of a physical machine. Of course, because docker now depends on lxc, you can only run it on linux (mac osx also supports it now, but it’s just a Linux virtual machine built with virtualbox. Believe me, it doesn’t make any sense to use it on mac now. Even for docker development, I think vagrant is more appropriate. Yesterday I just tried a boot2docker MAC tool, and the experience is really bad).
The so-called different system is actually a mirror image maintained by docker, which is not required for lxc, but docker maintains this mirror image to save the application environment more conveniently and achieve independent environment distribution. In addition, what you said about the docker image is very small and inaccurate. The size of the docker image is determined by the application. You can let your image save anything, that is, it can be of any size.
Whether or not docker is suitable for doing everything is not currently the case. docker is not suitable for billing tasks that require high precision, but it is sufficient for ordinary PaaS, and docker is developing rapidly at present. I believe the enhancement of features will be rapid.