10 ms·
Goodbye Docker: Purging Is Such Sweet Sorrow
- deleted 7y ago[deleted]
- based2 7y agohttps://lobste.rs/s/q3ryag/goodbye_docker_purging_is_such_sweet https://lobste.rs/s/q3ryag/goodbye_docker_purging_is_such_sw...
- aerique 7y agoThe first rule of lobste.rs is...
- bastardoperator 7y agoHave you tried kaniko for docker builds? I'm using it to do docker builds on Kubernetes in my CI pipeline. https://github.com/GoogleContainerTools/kaniko https://github.com/GoogleContainerTools/kaniko
- techntoke 7y agoWorks great with Skaffold
- jasonpeacock 7y ago> was likely due to a script that had got out of hand starting up too many containers. So there wasn't any actual problem with Docker, it was the OP's own problem that they "solved" by switching container platforms instead of just fixing their own buggy script?
- meddlepal 7y agoI facepalmed when I read that... This is an all too common problem in development and it's made me very skeptical of coworkers at times who use it "X technology doesn't work or X is garbage" as a justification to switch technologies or spend time prototyping several alternatives. I'm not gonna say Docker is a perfect tool by any stretch either.
- gorm 7y agoIt was on his home servers and he got a valid point regarding redundant daemon in docker. So I don't understand why you facepalm because its not your business what he runs at home or how he rocks his boat.
- meddlepal 7y agoI'm facepalming because he literally went through all the effort to replace Docker without fixing the underlying problem which is his script. At a minimum it means he doesn't understand how his own code works which is going to be problematic if your career involves coding. The "it's none of your business" argument falls flat the moment you decide to broadcast to the entire world what you're doing and then get it onto a the front page of a website known for debating the content of said articles.
- toredash 7y ago> I'm facepalming because he literally went through all the effort to replace Docker without fixing the underlying problem which is his script. Well, he didn't say that the reoccurring problem came back, so maybe it was Docker after all? Either way, I agree somewhat #facepalm
- skybrian 7y agoYou should read articles without assuming Hacker News is the intended audience. They usually aren't submitted by the author.
- ldng 7y agoNo, some container went rogue, and in the process dragged the Docker daemon which annoyed him PLUS he'd learnt that it was possible to run containers rootless and daemonless SO he changed his setup. Please RTFA.
- UberIsAnnoying 7y agoDocker 19.03 has a rootless option https://github.com/moby/moby/blob/master/docs/rootless.md https://github.com/moby/moby/blob/master/docs/rootless.md https://news.ycombinator.com/item?id=20542915 https://news.ycombinator.com/item?id=20542915
- rat9988 7y ago>Anyway, I didn’t necessarily blame Docker for it, but it did add force to an argument I’d heard before: Why does Docker need a daemon at all?
- tyingq 7y agoI am similarly confused as to why docker needs a daemon. For what's provided in the API, I don't see the need...it could all happen in the client. Contrast with LXD. It has a daemon as well, but it tracks containers and state across multiple hosts, so the need is obvious. The single host LXC doesn't have a daemon.
- argd678 7y agoWell for one, it can restart the container when it fails or on boot up. I don’t see how having no process minder improves anything, you could argue systemd shouldn’t be a daemon too and sysv init scripts are better too.
- turowicz 7y agoIn such cases I tell people that computers do what they are told. Especially when your code does something you didn’t expect.
- jwr 7y agoIt seems that "abandoning Docker" is the latest fashion fad, this is not the first article of this kind on HN recently. I look at each of those articles carefully and my takeaway every time is the same: there are great alternatives to Docker if you have unlimited time and are willing to accept lots of limitations.
- chrrypickn83 7y agoSure. Gotta use that time for HN comments. I agree with the actual comments on Dockers design. But I’m in infra and security so I’m biased. It’s my job as a tech nerd to care about that stuff? Or maybe I’m leaning into the role too much. Why even bother working in tech when this march forward is what everyone complains about but has been here forever? Growing up means getting over this shit internally.
- chrrypickn83 7y agoHm, I remember reading other unrelated reasons the author mentions for switching away. Maybe the article was edited after you read it. Is this gonna be another systemctl situation? “It’s new! Hiss!!!!”
- unixhero 7y agoI just started using Docker again in production. And it's pure garbage when you hit a corner case, but works well when you don't. I'd like to stop using it as well.
- pknopf 7y agoExample?
- unixhero 7y agoThe reason why lazy docker exists: "Something's not working? Maybe a service is down. docker-compose ps. Yep, it's that microservice that's still buggy. No issue, I'll just restart it: docker-compose restart. Okay now let's try again. Oh wait the issue is still there. Hmm. docker-compose ps. Right so the service must have just stopped immediately after starting. I probably would have known that if I was reading the log stream, but there is a lot of clutter in there from other services. I could get the logs for just that one service with docker compose logs --follow myservice but that dies everytime the service dies so I'd need to run that command every time I restart the service. I could alternatively run docker-compose up myservice and in that terminal window if the service is down I could just up it again, but now I've got one service hogging a terminal window even after I no longer care about its logs. I guess when I want to reclaim the terminal realestate I can do ctrl+P,Q, but... wait, that's not working for some reason. Should I use ctrl+C instead? I can't remember if that closes the foreground process or kills the actual service. What a headache!" And war stories like these are similar to what I have experienced: https://thehftguy.com/2016/11/01/docker-in-production-an-history-of-failure/ https://thehftguy.com/2016/11/01/docker-in-production-an-his...
- unixhero 7y agoAnother example - Stuff like this: https://stackoverflow.com/questions/19688314/how-do-you-attach-and-detach-from-dockers-process https://stackoverflow.com/questions/19688314/how-do-you-atta... I just hit this one today.
- sunseb 7y agoHDD : Hype Driven Development. "Yeah, we should just give up on Docker and rebuild all the container ecosystem using IBM technology."
- deleted 7y ago[deleted]
- KaiserPro 7y agoWell, if it was cheaper, I'd run my "containers" on a z series cluster. Automatic failover during hardware failure, no need to program anything special. HA without the need for having to do any work.
- squeaky-clean 7y agoMy coworker likes to call it RDD. Resume Driven Development. Just stick with something long enough to comfortably add it to your resume, then drop it and never maintain what you made.
- ldng 7y agoIt's not hype, it's just realizing that "Docker the container runner" is mostly a relatively thin layer above kernel APIs. If you're not embracing the full Docker but using Kubernetes, the "runc" could be any of the dozens of alternative launcher. You don't have to rebuild everything. That is what standards are for. Of course, this commodification is a problem for Docker Inc. The reason why they're "hyping" their brand ;-)
- nullwasamistake 7y agoDocker is the Myspace of container engines. It's stupidly unreliable, at least on MacOs. I've resorted to running system prune every week or so to keep it from getting totally out of control. Reminds me of NPM and rm-rfing node_modules on every build. I can't wait till something comes along to replace it.
- jasonvorhe 7y agoI've been using latest Docker, sometimes with the bundled Kubernetes on macOS for years without such issues. Of course it's still just a Linux VM.
- nullwasamistake 7y agoIt may be related to how many containers I run. Usually at least ten, sometimes 30. Usually the problem isn't daemon itself, but all the garbage integration attached to it
- toredash 7y ago> Docker is the Myspace of container engines. It's stupidly unreliable, at least on MacOs. I've resorted to running system prune every week or so to keep it from getting totally out of control. Well Docker for Mac is really just binding the CLI towards the daemon, that is running in a Linux VM. But the integration is far from optimal.
- kkarakk 7y agoDocker on anything other than linux is a meme right now, the support is pretty bad and stuff straight up doesn't work for arcane reasons that aren't mentioned
- kevinmgranger 7y ago> podman pull downloads get all layers in parallel, in contrast to Docker’s. Hmm? I could have sworn docker pulled multiple layers at once the last time I used it.
- MrMorden 7y agoDocker pulls three layers at a time, not all of them.
- Proven 7y agoIt pulls as many as it's configured to pull. And yes, in your case that would be "all of them" if there's no more than 3 layers in the container and only one is being pulled.
- WJW 7y agoOnly because that's the default setting. You can pass in `--max-concurrent-downloads` with any number you want.
- fortran77 7y agoHe replaced Docker with something that's basically the same thing?! I don't get it.
- zintrilisqo 7y agohttps://en.wikipedia.org/wiki/Fashion https://en.wikipedia.org/wiki/Fashion
- Yeroc 7y agoThe article did a pretty good job of explaining the differences. Did you just skim it quickly? Mainly, no need for a daemon or running as root.
- user5994461 7y agoIt's not him. Docker was retired last year in case you are not aware of that. RedHat replaced docker with their own software. The command is still "docker" but it doesn't run docker. Since RedHat basically runs Linux, docker is dead, it will be transparently killed from all the Linux distributions soon.
- thebsdbox 7y agotl;dr My script/code doesn’t work efficiently, I changed to a similar runtime and in summary noticed no real difference.
- breatheoften 7y agoI’ve managed to resist the hype and still not ever used docker for anything ... I still really struggle to understand what the practical benefits to this kind of containerization actually are ... It seems like people reach for it because they want to have some kind of “compile target” into which they can stick “all the things” their application needs to run — which is supposed to then help them “deploy” into their development environment or onto their production infrastructure in a way that serves the goal that the applications within the image should behave the “same way” in either location ... but does anything about this kind of container abstraction actually help with doing this? Don’t you still inevitably end up having to manage assumptions about the differences between these environments in order to make this work in practice (oh if you are in development environment make sure you don’t actually submit payment to stripe, if you are deploying to this cloud provider make sure you get secrets from <here> instead of <here> ...) ...? Do you actually get any good abstractions out of the container which empower better solutions to deployment challenges? “I don’t have to think about which hosts the (random) http client used in my application is configured to talk to because I can just magically retarget it at the container level by manipulating networking configuration” — is that a thing — does it actually work? To my understanding the extent to which you _can_ do that requires you to write your application a certain way with a crazy service discovery layer like istio — and you’ve got to make sure you build your application completely to use service discovery fabric ... but if you built your application to use a service discovery fabric do you gain anything extra by also using docker at that point ...? And what about the impact to developer ergonomics? Is it easy and smooth to use debuggers to quickly edit code running in an image ...? Do people regularly run production docker images locally to debug production application issues ...? Are there solutions that allow one to say, attach to a remote qa testers chrome instance and then automatically attach debugger to the set of production containers handling the requests associated with that browser ...? Those are the kind of features I want ... I’m not sure exactly if the containerization abstraction model would really help me get there or just create another set of configuration knobs that _also_ have to be correctly aligned for me to get the right environment specific behaviors out of my application ...
- e40 7y ago> I still really struggle to understand what the practical benefits to this kind of containerization actually are ... Here's why I started using it years ago. I had a CentOS 6 machine that I wanted to run Plex, Subsonic and Transmission on, but I couldn't, because they had different (EDIT: and conflicting) requirements for various packages. I might have been able to hack it, but it was looking really tricky. Enter Docker. I have all three running in separate Docker containers. And it just works. I've never hand a single problem. I made a yum exception for the Docker packages I use, so I can control when they are updated, which is about once a year. The alternative was to build a new box that met all the requirements, but that seemed like a big waste of resources (electricity and my money).
- kingwill101 7y agoI personally like keeping my root partition to a minimal and ever since docker came into the picture I keep running into spacing issues. So the allure for me to switch isn't technical but for peace of mind storing images in userspace
- loganekz 7y agoYou could still keep your root partition to a minimal size, just create a larger /var partition.
- acdha 7y agoWhy not simply change the storage path by setting the data root in your configuration? https://docs.docker.com/engine/reference/commandline/dockerd/ https://docs.docker.com/engine/reference/commandline/dockerd...
- broth 7y ago> I’d never really got to the bottom of it Perhaps it might have been worth the extra time to get to the bottom of it instead of switching and, in the end, not noticing any big differences? Also, I noticed there was an ad at the end of the post for the book Docker in Practice. Ironic placement.
- emmanueloga_ 7y agoWait, isn't the author of the blog post the author of the book?
- hpen 7y agoSo did he even fix the original issue?
- mharroun 7y agoI just wish docker wasnt slow as shit on mac's (then again I guess relative to vagrant it's not that bad)
- techntoke 7y agoBecause they have to use a hypervisor to get the benefits of the Linux kernel. If you want to speed things up and get native benefits then try switching to Linux or convince Apple to add native containers.
- ci5er 7y agoI still don't "get" docker. I've deployed systems with it, and it works fine (maybe except for postgres containment, there still seems to be some "bare metal assumptions" that postgres may use that docker may invalidate), but why not use Ansible/Vagrant to build images? It appears (to me) to be the same thing, but with new mental overhead and/or cult involved. Lots of ways to make sure that images get built and tested and deployed by scripts that keep a lot of config and directory in stand-alone (twinned) services. Why there is a "docker" cult (which may be the wrong word - it may be very very valid) escapes me.
- aftbit 7y agoWe use docker to spin up and down tens of thousands of short lived (~10 minutes) containers per day. Docker 17.05.0-ce on Ubuntu 16.04 tolerates this fine, but Docker 18.06.0-ce hangs after only a few hours. I've not bothered troubleshooting in detail yet; I've just pegged the docker version and moved on with my life. Still, I've lost a lot of trust in docker.
- pknopf 7y agoInteresting. Where exactly does it hang? When you create the container, or when you run it?
- ohiovr 7y agoIt is possible to limit a containers resources, cpu, memory, network https://docs.docker.com/config/containers/resource_constraints/ https://docs.docker.com/config/containers/resource_constrain... Docker can really grind if it starts hitting swap. I have not added resource constraints but I've been planning on doing it.