5 ms·
What aspects of Docker trouble you so?
by cropcirclbureau 3y ago
What aspects of Docker trouble you so?
- maccard 3y agoI use containers on Mac and Windows for development (and we deploy on linux). Docker for Mac is _unusably_ slow in my experience. The VM that it runs is a giant resource hog and a battery hog, and doesn't support ipv6 [0] Docker Desktop itself is (another) resource hog, wildly buggy, and painfully slow. It's the epitome of "shitty electron app". On windows, docker desktop has all of the same issues as it does on mac. Docker's concept of volumes and file permissions on windows are nonsense. Windows updates and Docker Desktop regularly decide to disagree, [1] It's networking support interferes with other applications (like OpenVPN and the Xbox Game Center) [2]. [0] https://github.com/docker/for-mac/issues/1432 https://github.com/docker/for-mac/issues/1432 [1] https://github.com/docker/for-win/issues/599 https://github.com/docker/for-win/issues/599 [2] https://github.com/docker/for-win/issues/1976 https://github.com/docker/for-win/issues/1976
- anonzzzies 3y agoI was typing this on my phone, but yes. This. Thanks! To add: Mac OS X docker actually, after a while, without errors, stops responding to running dockers and you cannot remove them without reboot. It’s total garbage, but cannot move from it as everyone uses it. So, emacs-stable alternative for docker. Maybe that should be a movement; emacs-alternative-for. I have many already; software that is fast, can run for months/years and doesn’t get slow vs stuff you need to actually reboot for to run ok. I mean emacs is bloated (yeah right, compared to whatever others are pushing out?) but disk space, even sdd is almost free; it simply runs for months without memory growth or performance degradation. The only reason I stop it because of reboot for sec updates.
- maccard 3y agoI've switched to orbstack on Mac. My experience is significantly better. It's the opposite of emacs-stable for docker, but it's what I want out of docker.
- anonzzzies 3y agoMaybe we mean different things when saying that; I mean that I can throw anything sensible at it and it keeps on chugging. I know if I do something weird, it might die. During dev sessions I don’t do that, I just want to run vanilla containers like mariadb, node etc and pray they don’t randomly crash (they do).
- maccard 3y agoAh, ok. Yeah it works great. When you said emacs, i assumed you meant long term stable, libre philosophy. Orbstack is what docker for Mac should be.
- rhaps0dy 3y agoI've been using Colima (which uses Lima, and QEMU under the hood) and it works fine for me. https://github.com/abiosoft/colima https://github.com/abiosoft/colima
- ajross 3y agoIsn't this a kernel-side problem, though? The whole metaphor behind docker is "containers are super-fast and easy". And they aren't on OS X or Windows, you have to use a VM. And that's slower. There are tortuous and awful arguments around about whether this is inherent or not, or whether the tradeoffs are worth it or not, or where the blame lies. And I'm not interested in getting into any of that. Nonetheless the core idea behind Docker is slow on a Mac, because the Mac doesn't implement anything like the kernel feature on which it was built.
- maccard 3y agoI don't believe so, no. I think it's an artifact of docker being engineered to run on Linux and taking the "easy" option of running a VM. I have no affiliation with OrbStack, but am a happy user. Orbstack is an example of what docker for mac should be. It's fast, lightweight, and it works.
- pxc 3y agoIf you're developing for Linux via Mac or Windows and you're comfortable at the CLI, just forego Docker Desktop, install regular Docker (or podman) in a VM, and work that way. If you can, avoid using x86 Linux containers on Apple Silicon. Build some aarch64 ones for development and test your x86 images in CI and on the machines of devs using x86. Similarly, if you can avoid deploying your environment via Linux containers on macOS, do it. Use Nix to get reliable dev envs, and then use Nix to build your production containers. You'll have to take your time and learn something new, but it's insane how much faster it is and you can avoid dealing with all kinds of hassles with filesystem mounting and port forwarding and so on.
- maccard 3y ago> If you're developing for Linux via Mac or Windows and you're comfortable at the CLI, just forego Docker Desktop, install regular Docker (or podman) in a VM, and work that way. That's pretty much what docker desktop does anyway, except it bridges the host with th containers in the Vm. I don't think it's worth throwing out all of the interop there because Docker the 2-billion-dollar company can't handle basic networking on windows and Mac. > Use Nix to get reliable dev envs, I'd really rather not throw away all of the _good_ docker has - despite my complaints, I still use it every day.
- pxc 3y ago> That's pretty much what docker desktop does anyway, except it bridges the host with th containers in the Vm. I don't think it's worth throwing out all of the interop there On WSL, incl. WSL2, you get bridged networking 'for free'. I'm not sure what Docker Desktop adds there. I'm not really on Windows anymore. But WSL is part of the picture when it comes to Docker's awful performance and memory leaks on Windows. If you can give up WSL/Hyper-V in favor of a better hypervisor, you can get much better performance. > I'd really rather not throw away all of the _good_ docker has - despite my complaints, I still use it every day. I guess we differ there, in that I don't really think Docker (which is really useful) is a great fit for local development— especially on non-Linux. There are other teams at my org who develop using Docker, and for those I've spoken to it's been a real win compared to what they had before! I respect that. But my team currently only uses Docker in CI and in cloud deployments rather than for local development, and I'm pretty happy with that.