4 ms·
I suppose Docker is good as a software packaging solution because the OS packaging systems "failed" to be simple enough. If there was an easy way to create a s
by reacharavindh 8y ago
I suppose Docker is good as a software packaging solution because the OS packaging systems "failed" to be simple enough.
If there was an easy way to create a software project -> Build -> distribute the result to several OS -> Expect it to run the same way config wise, then there would not be a need for a tool like Docker.
But, as with all new technologies, there are always idiots who misuse the new power. Building Docker images for deploying a single Go binary is about as idiotic as it gets.
Many Docker use-cases can be solved by a basic script that sets up the software, runs it, and cleans up after.
- tannhaeuser 8y agoYes, Docker is mainly a consequence of Linux package management practices, and in particular shared libs and dependeny management, being generally misunderstood and perceived unfit for the job. Docker is perceived as simpler, because it doesn't solve the central problem at all: that of maintaing shared libs for security updates. Using Docker is equivalent to using statically built apps (up to the fact that Docker needlessly runs as demon and with root permissions). *) That, and tens of millions of investor money/ad spend to implant the idea into people's heads that you need Docker
- kakwa_ 8y agoDocker is a bad solution to a real problem: Software engineering is still immature and we are not capable of maintaining stable interfaces/API. As a consequence, it's a nightmare to update a system without some kind of regressions, it's also a nightmare to make sure environments are close enough to be representative of production. Docker kind of solve this issue by bundling every dependencies (a bit like a big java .war file, a python virtualenv, ruby bundler, or even some LD_LIBRARY_PATH trickery or static compilation with C/C++). But this approach is wrong. Very soon, you have 69 frameworks in production each in 42 versions at least, with 13 installation patterns, so you cannot really scan the containers, and you start giving up on maintaining this huge matrix. And at one point, you get some old (CentOS 6) containers failing to boot anyway because you updated the underlying OS (the last bit you're able to manage), and it disabled something this old container was relying upon (like its libc needing the old and somewhat dangerous vsyscall).
- mping 8y agoStable APIs are not strictly an engineering problem, it's also a business problem. In fact, most of the engineering that occurs is due to business problems. Most of the instability around software engineering comes from business requirements - they pay engineers to do things faster/less errors/better. So we ditch the old version and build new ones. And the world goes round.
- stefanve 8y agoYeah that can become a real problems and even if it runs you still end up with a lot of security issues. But this is true for any old server and unmaintained code
- tannhaeuser 8y agoVery good point about Docker giving you a false idea about being to able to run old images on new OSs, which only real VMs can do. CentOS 6 isn't even old - it's used all over the place, and people hang on to it because it's systemd-free.