logoalt Hacker News

stingraycharles • today at 1:12 AM • 5 replies • view on HN

And not a single mention of the actual weird decision, a client / server model which complicates permission management by at least two orders of magnitude.


Replies

eddythompson80 • today at 3:09 AM

I’d argue in 2013, the client / server model is what made docker a success. It allowed for a seamless, and mostly identical, experience for docker on Mac, Windows and Linux for one. It met developers where they were, daily-ing a Mac or a Windows and deploying on Linux headless servers. It had benefit on its native Linux system too that took all the alternative solutions another 8 or 9 years for the entire Linux ecosystem to develop enough solutions around containers to make a daemon unnecessary while still offering docker DX.

➕ show 1 reply
thayne • today at 3:09 AM

That's actually a design decision made to work around the limitation of having to run as root. Since the container had to be started as a privileged user, if you want non-privileged users to be able to start contianers you either need a setuid binary or a client/server interface like docker has. There are pros and cons to each of those options.

Now it's possible to create containers without elevated privileges (assuming user namespaces are allowed), but that wasn't possible until long after docker had established the client/server model.

➕ show 1 reply
schmichael • today at 2:45 AM

lxc never had a daemon but Canonical added one (lxd in 2015) and lxc forked it to incus to be community managed.

rkt (2013) was CoreOS's alternative to Docker and was daemon-less and failed.

Podman came along relatively late (2018) and benefited from a lot of Linux kernel and systemd improvements since Docker was designed.

So while arguably the client/server model is outdated for container management tools, I'm not sure it's weird. This is my workstation for example:

  schmichael@fedora:~$ ps -e -o comm= | rg 'd$' | wc -l
  67
Daemons are maybe the least weird paradigm you can choose for a Unix program.
modeless • today at 1:39 AM

Yeah, the daemon is the real problem with Docker.

slowin • today at 1:17 AM

This is why I prefer Podman.