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.
I could go in-depth, but really, the best way I can describe my docker usage is as a simple and agnostic service manager. Let me explain.
Docker is a container system. A container is essentially an operating system installation in a box. It’s not really a full installation, but it’s close enough that understanding it like that is fine.
So what the service devs do is build a container (operating system image) with their service and all the required dependencies - and essentially nothing else (in order to keep the image as small as possible). A user can then use Docker to run this image on their system and have a running service in just a few terminal commands. It works the same across all distributions. So I can install whatever distro I need on the server for whatever purpose and not have to worry that it won’t run my Docker services. This also means I can test services locally on my desktop without messing with my server environment. If it works on my local Docker, it will work on my server Docker.
There are a lot of other uses for it, like isolated development environments and testing applications using other Linux distro libraries, to name a couple, but again, I personally mostly just use it as a simple service manager.
tldr + eli5 - App devs said “works on my machine”, so Docker lets them ship their machine.
The one caveat to that is switching between something ARM-based like a Pi and an x86 server. Many popular services have ARM versions but not all do.
Edit: In saying that, building your own image from source isn’t too complicated most of the time.