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.
Docker 19.03: Rootless Mode (Experimental)
21–30 of 45 posts
Re: Docker 19.03: Rootless Mode (Experimental)
#22Or we could just ditch Docker for one of the alternatives, like Podman that doesn't need root, nor a daemon.
Re: Docker 19.03: Rootless Mode (Experimental)
#23Earlier quoted context omitted.
I don't like their idea of what a docker-compose replacement should be. And reading issues and limitations about podman pod commands is very discouraging. I would love to hear what others are using and their experiences though. I avoid anything Kubernetes because of a personal bias.
Would you be willing to elaborate on the reason why you avoid kubernetes?
Here's the scene: Most of the web projects I work on will never have a billion users. They might have 5, or 10. One or two have thousands. Several of them have 1 (me).
Docker-compose works for me. I set up a container for my backend, a container for whatever's serving the static resources for the frontend, and a container for whatever databases are needed (Postgres, Redis, whatever). The databases get a filesystem volume mount that I can snapshot off the disk with a nightly cron job.
I have a script that will transform a brand shiny new $5/mo DigitalOcean Ubuntu image into a machine with nginx+LetsEncrypt for SSL termination, and with Docker and docker-compose installed (and the Docker port firewalled off, natch). From there, I run "docker-compose up -d" and my project fires up and goes. Maybe I have to edit a line or two in the nginx.conf that my script put in place.
To deploy, I do a local build on my laptop (or Jenkins for a few projects where it makes sense) via a script that pushes the built containers to Docker Hub, and runs docker-compose pull on the host.
This has served me beautifully.
I've looked at Kube more than once. It looks cool for things dramatically bigger than what I'm working on. For something that isn't massive scale, it's bloody complicated. If one of these projects ever gets to the point where a $40/mo DigitalOcean box can't handle the load, I'll probably look at it again. Until then, though, it feels like a very expensive (time-wise) premature optimization.
Re: Docker 19.03: Rootless Mode (Experimental)
#24To 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 p…
Could you explain? I’m a maintainer of CNI and I know almost nothing about runc, so I’m not clear where they touch.
The first CNI implementation came out of rkt, pre-dating runc by a year or two.
Re: Docker 19.03: Rootless Mode (Experimental)
#25Earlier quoted context omitted.
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 p…
> given CNI which touches some deep bits of runc's particular behaviour Could you explain? I’m a maintainer of CNI and I know almost nothing about runc, so I’m not clear where they touch. The first CNI implementation came out of rkt, pre-dating runc by a year or two.
And historically, yes it might predate the runc binary but the libcontainer code that is now part of runc predated CNI -- and all of our fun idiosyncrasies are in libcontainer.
Re: Docker 19.03: Rootless Mode (Experimental)
#26Earlier quoted context omitted.
> given CNI which touches some deep bits of runc's particular behaviour Could you explain? I’m a maintainer of CNI and I know almost nothing about runc, so I’m not clear where they touch. The first CNI implementation came out of rkt, pre-dating runc by a year or two.
I mean that it likely makes certain assumptions about how runc sets up containers which aren't true of LXC. I'm sure you could get CNI to work with LXC (in fact, someone might've already done that -- I'm not sure tbh) but it wouldn't be something you'd be able to drop-in without at least a bit of extra work. For instance, LXC's hooks run in different contexts to OCI hooks (though we recently discovered that runc runs…
Nope. CNI takes as parameters a “container ID” (any string) and a network namespace path. No knowledge is needed or implied about how those things fit with actual containers.
Re: Docker 19.03: Rootless Mode (Experimental)
#27Earlier quoted context omitted.
Would you be willing to elaborate on the reason why you avoid kubernetes?
I'm not the OP, but... Here's the scene: Most of the web projects I work on will never have a billion users. They might have 5, or 10. One or two have thousands. Several of them have 1 (me). Docker-compose works for me. I set up a container for my backend, a container for whatever's serving the static resources for the frontend, and a container for whatever databases are needed (Postgres, Redis, whatever). The databa…
Re: Docker 19.03: Rootless Mode (Experimental)
#28Or we could just ditch Docker for one of the alternatives, like Podman that doesn't need root, nor a daemon.
Comparing the shortcomings of rootless podman ( https://github.com/containers/libpod/blob/master/rootless.md ) and rootless docker, they seem almost the same. So this argument may not count, the daemon argument however applies.
The W3C[1] says "if you connect to a service on one of these ports you can be fairly sure that you have the real thing, and not a fake which some hacker has put up for you." Well, in 2019 computers aren't mainframes run by institutions and hackers can be root of their own system and run whatever they want on port 22.
It's such an incovenience that I'm sure it caused countless services to be unnecessarily run as root.
[1]: https://www.w3.org/Daemon/User/Installation/PrivilegedPorts....
Re: Docker 19.03: Rootless Mode (Experimental)
#29Earlier quoted context omitted.
Would you be willing to elaborate on the reason why you avoid kubernetes?
I'm not the OP, but... Here's the scene: Most of the web projects I work on will never have a billion users. They might have 5, or 10. One or two have thousands. Several of them have 1 (me). Docker-compose works for me. I set up a container for my backend, a container for whatever's serving the static resources for the frontend, and a container for whatever databases are needed (Postgres, Redis, whatever). The databa…
(I mean, projects that set up containers for backend, database, and front-end servers and push them to digitalocean etc.. I can imagine how each piece works, but I'd love to see how a coherent and manageable project in that style is organized as a whole.)
Re: Docker 19.03: Rootless Mode (Experimental)
#30To 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.
[1]: https://www.nomadproject.io/docs/drivers/external/lxc.html