Live data from Hacker News

Docker 19.03: Rootless Mode (Experimental)

github.com

11–20 of 45 posts

Re: Docker 19.03: Rootless Mode (Experimental)

#11

Earlier quoted context omitted.

Would you be willing to elaborate on the reason why you avoid kubernetes?

Like I said it's a personal bias, mainly about Google. The only time I had to use it was with RH's cloud and if it wasn't for their good documentation I would have dropped the client. Everytime I looked under the hood it reminded why I hate being a developer around 35% of the time.

That’s a rather bizarre reason to avoid a pretty solid system.

Re: Docker 19.03: Rootless Mode (Experimental)

#12
post #9
post #8

Earlier quoted context omitted.

For the trivial case a child process would work. But ultimately docker does try to be closer to an init system or maybe screen since you can detach/attach to processes. Since reparenting to arbitrary processes is not possible in linux it's also not possible to retain the parent-child relationship for spawned containers. If you want the fork-exec model then docker is indeed the wrong tool for the job.

The thing is, I don't even really like Docker as an init daemon. I have my gripes about Systemd but I see no downsides to not having a long-running daemon for a container engine. Really, whether you need root or not isn't even the most important issue; you can do sudo or suid or whatever with any container engine; Docker just has it be an implicit, unintuitive behavior. I used to use systemd+rkt for simple container…

I read an article (can't find it now) that said from a previous project the Docker authors concluded they wanted a daemon so they didn't have to do things like file locks, etc. around image management.

Don't know if that accounts for the whole reason or not.

Re: Docker 19.03: Rootless Mode (Experimental)

#14
post #11

Earlier quoted context omitted.

Like I said it's a personal bias, mainly about Google. The only time I had to use it was with RH's cloud and if it wasn't for their good documentation I would have dropped the client. Everytime I looked under the hood it reminded why I hate being a developer around 35% of the time.

That’s a rather bizarre reason to avoid a pretty solid system.

But also a pretty solid testament to the credit of RedHat's documentation, which I'll echo myself. My OpenShift experience is limited to 2017, but I've never heard anything but positive things about OpenShift's documentation, and I heard it has moved a lot closer to mainline Kubernetes since.

Re: Docker 19.03: Rootless Mode (Experimental)

#15
post #10

Docker has supported namespaces for a while now so that even if the user in the container is root it could be a subordinate id on the host with no administrative authority. What is new though?

That still required the daemon run as root. This runs the daemon rootless as well.

Re: Docker 19.03: Rootless Mode (Experimental)

#16
post #9

Earlier quoted context omitted.

The thing is, I don't even really like Docker as an init daemon. I have my gripes about Systemd but I see no downsides to not having a long-running daemon for a container engine. Really, whether you need root or not isn't even the most important issue; you can do sudo or suid or whatever with any container engine; Docker just has it be an implicit, unintuitive behavior. I used to use systemd+rkt for simple container…

I read an article (can't find it now) that said from a previous project the Docker authors concluded they wanted a daemon so they didn't have to do things like file locks, etc. around image management. Don't know if that accounts for the whole reason or not.

Oh yeah, I read that - surrounding the original authors at dotCloud about their experiences trying to do it in multiple processes IIRC. That said, it seems the problem may be somewhat solved at this point.

Re: Docker 19.03: Rootless Mode (Experimental)

#18
post #10

Docker has supported namespaces for a while now so that even if the user in the container is root it could be a subordinate id on the host with no administrative authority. What is new though?

The daemon is running as an unprivileged user. Docker with userns-remap is still running as root (and recent vulnerabilities like CVE-2018-15664 are still a significant worry even if you ran with user namespaces enabled).

Re: Docker 19.03: Rootless Mode (Experimental)

#19
post #17

To the container wizards: Is it possible to orchestrate lxc containers using kubernetes? I've been looking at lxc containers for a while and really would not like to run Docker as root.

LXD has orchestration support natively, though it's not at all like Kubernetes (you are manually moving containers around and so on).

I have heard that some folks have looked into using LXC under Kubernetes (and theoretically the OCI templates for LXC could possibly make this somewhat work) but there isn't an obvious way to do that today AFAIK. And I'm not convinced (given CNI which touches some deep bits of runc's particular behaviour) it would work with everything you'd want it to.

Re: Docker 19.03: Rootless Mode (Experimental)

#20

Or we could just ditch Docker for one of the alternatives, like Podman that doesn't need root, nor a daemon.

Yep. I only half care about rootless. I definitely care about the daemon. It sucks. It flies in the face of traditional Linux process management where child processes are child processes . (Unless you want an init system, where you need a daemon. But docker is a sucky init system.) Docker breaks even the most basic things. $ time docker run some heavy computation Oh wait, that doesn't work.

In that case you can use LXC or even runc directly. I wanted to (for a long time) decouple the systemd dependency from rkt, because they had the perfect model for it. Unfortunately we've all migrated to arguing about containerd vs cri-o/podman.
Post reply on HN