3 ms·
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
by SteveLTN 8y ago
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.
- pvg 8y agoBefore 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'.
- SteveLTN 8y agoYes, I know. I just personally didn't learn to use Chef or Ansible, etc. back then. Now I use Ansible as well as Docker. Like it so far.
- mmt 8y ago> 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.
- cm2187 8y agoOn 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.
- SteveLTN 8y agoWell, 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.
- cm2187 8y agook so maybe I misunderstood. I thought the version of the host linux had to match exactly the version of the docker linux image.
- pythonaut_16 8y agoI 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?