I see Docker mentioned every other thread and was wondering how useful it is for non development things, and if so what they are.
I see Docker mentioned every other thread and was wondering how useful it is for non development things, and if so what they are.
In simple terms, it’s like a VM for an application. You set it up with the right dependencies and your application will “just work” on it, without having to deal with other applications existing alongside it.
What makes it better than a VM is that it is much faster. It interfaces with kernel features that help isolate the processes and files from the rest of the system. It is not virtualization, rather it is namespacing.
Docker also provides a bunch of tools that help with creating this environment automatically and allowing for some escaping into the host, such as binding ports and sharing data with the host’s file system.
Once this environment is created, it can be shared with uses as a single downloadable bundle, called an image. This makes it really easy to download and run an application without having to prepare your system with the right dependencies and files.
Nothing is free though, and the cost here is more disk space and some performance overhead, although it is close to native speed.