Recently, I learned docker and got a preliminary understanding of the concepts of mirror image and container. However, reading documents and some use cases is still confusing.
According to docker’s introduction, it can be packaged based on the basic image. As long as you have a dockerfile, you can generate the same environment and dependency on another machine. Can I use docker to put all kinds of development environment and tools on my mac into the image, such as webstorm,chrome, and other command line or ide visualization tools, if that is possible? Isn’t that equivalent to having a cloud system? I’ve changed a new machine. I don’t need to reinstall all kinds of tools and environments, and I don’t need to care about what system it is, as long as I don’t need to pull the mirror image. Or does docker only package those dependencies and applications in the form of command lines? This one is a little confused.
Impossible. First of all, Docker is not a new technology, but the packaging and assembly of many old technologies. You can think of it as a chroot enhanced version, and it relies heavily on Linux kernel, which is kernel+software package, while Docker packages the software package file system, and the kernel is shared. Therefore, it is impossible to package all kinds of development environments on Mac into images as mentioned by the title owner. Regarding the packaging of GUI into Docker image, it is feasible in theory but impossible in practice, because Docker only makes standard input, standard output and standard error console display, and there is no GUI graphical interface output mode.