Docker is surely not for everyone. If you don't get why you want to use Docker, chances are you don't need it.
Differently people use Docker differently, I see Docker could be useful for several purposes:
1) scalability
This is the main advertisement point for Docker I guess. Well it enables your stateless application to scale automatically.
2) being able to deploy without caring about dependencies
There are times we want to deploy something into customers' servers. We have no control over their machines' environments. But with Docker, the only thing I need to make sure is that they have it installed.
3) Infrastructure as code
All our source code is checked in git and version controlled nicely. When we need to run it again, just clone from git. How nice! But our infrastructure, meaning server formation and service relationship? Not so much. Before using Docker, we basically need to ssh into servers and install dependencies according to the documents. It was not only slow, but unreliable because we all know how documents can lie. With Docker and docker-compose, the infrastructure can be written in code and checked in git. Most importantly, code doesn't lie.
You can surely use other tools to achieve those. I'm not saying Docker is the only way. But I believe it's a good tool to consider when you have those needs.
Before using Docker, we basically need to ssh into servers and install dependencies according to the documents.
There's an entire cottage industry of not-docker tools for that. Not to take anything from docker but the options aren't 'docker' and 'the pre-docker dark ages where you ssh'ed into servers one by one and carefully typed commands from a faded printout'.
> There's an entire cottage industry of not-docker tools for that.
Not the least of which are the distros own packaging systems (e.g. rpm/yum or dpkg/apt). Full investment in the complexity of the ecosystem isn't even necessary for basic dependency handling.
On 2, perhaps I misunderstood how docker works but don’t you need to deploy a docker image that is binary compatible with the type and version of the host OS? Then don’t you just move the problem? (Two customers with different types of OS require you to recreate the docker images). And what if these customers need to upgrade their version of linux, do they need to contact all their software vendors to reissue new docker images?
I never understood how creating the tight dependancy between the host and the docker image is not a problem.
Well, you need to get a binary compatible docker image for the hardware. But frankly almost everyone uses x86-64 now, so this is not usually a problem. If these customer upgrade their version of Linux, the new Linux version usually comes with Docker, and you don't need to update the image.
I believe the running containers share the host's kernel, so maybe if you were doing certain low level kernel level stuff, maybe the version of the kernel matching would matter?
When using non-integer scaling, does mac OS actually render fonts at 2x, then scales it all down?
So you have a 3840x2160 monitor, set mac OS to "look like 2560x1440", it would render at 5120x2880, then scale it down to 3840x2160?
To me, a more logical solution would be using the vector font of the target physical pixel value (3840x2160) and skip all scaling etc.