Live data from Hacker News

Launch HN: Nestybox (YC S20) – Containers beyond microservices

news.ycombinator.com

51–60 of 112 posts

Re: Launch HN: Nestybox (YC S20) – Containers beyond microservices

#51
post #46
post #31

Ex-Docker person here. I got an early peek at Sysbox and I'm really excited by it -- it's really neat. Docker is missing a bunch of features that make some software work, which is why you can't run Docker inside Docker by default. Instead of dropping from containers all the way down to hardware virtualization, Sysbox is "augmenting" containers with the missing features by simulating them in userland. That gives you a…

i'm just curious. For what kind of use cases do you need docker inside of another docker?

As @wh33zle mentioned, CI/CD is an obvious use-case. Development environments is another one (pls see the other question i just answered on this topic).

But i also see 'production' scenarios. Think about having a reverse-proxy system container, inside of which you host the backend applications, which happen to be docker containers.

In essence, Sysbox allows you to create hierarchies of containers in a secured fashion, without the need to abuse 'sidecar' pattern, nor priv containers.

Re: Launch HN: Nestybox (YC S20) – Containers beyond microservices

#52

This is a great contribution to the container/K8 ecosystem.

Thanks, that's really encouraging. While it has taken a lot of hard-work to develop it, Sysbox would not exist without the excellent work done by OCI runc developers (Sysbox was forked from runc) as well as the LXD developers (who have done a bunch of the kernel work to enable the advanced OS-virtualization techniques we incorporated in Sysbox).

Re: Launch HN: Nestybox (YC S20) – Containers beyond microservices

#54

How does Sysbox compare to Podman? (If I remember correctly you can run systemd in a podman container and/or run a podman container with systemd.

We haven't had enough cycles to look at Podman in details (yet), but my understanding is that Podman and Docker serve similar purposes: they are high-level runtimes. (i'm obviating important nuances though and i'm not podman expert).

Sysbox, on the other hand, acts as a low-level runtime (same as runc), so we could potentially integrate with Podman too. In fact, we could _potentially_ integrate with anything that speaks OCI spec.

Having said that, we are not there yet, as for example sysbox wouldn't work with Podman in rootless mode right now; it should work in regular mode though, but we haven't tried it yet. If we accomplish this, it would allow podman to launch a larger set of applications too, same as we are doing for Docker.

Re: Launch HN: Nestybox (YC S20) – Containers beyond microservices

#55
post #54

How does Sysbox compare to Podman? (If I remember correctly you can run systemd in a podman container and/or run a podman container with systemd.

We haven't had enough cycles to look at Podman in details (yet), but my understanding is that Podman and Docker serve similar purposes: they are high-level runtimes. (i'm obviating important nuances though and i'm not podman expert). Sysbox, on the other hand, acts as a low-level runtime (same as runc), so we could potentially integrate with Podman too. In fact, we could _potentially_ integrate with anything that spe…

Podman can use runc or their own runtime crun https://github.com/containers/crun so it should be able to work without much drama :tm:

Re: Launch HN: Nestybox (YC S20) – Containers beyond microservices

#57
post #55
post #54

Earlier quoted context omitted.

We haven't had enough cycles to look at Podman in details (yet), but my understanding is that Podman and Docker serve similar purposes: they are high-level runtimes. (i'm obviating important nuances though and i'm not podman expert). Sysbox, on the other hand, acts as a low-level runtime (same as runc), so we could potentially integrate with Podman too. In fact, we could _potentially_ integrate with anything that spe…

Podman can use runc or their own runtime crun https://github.com/containers/crun so it should be able to work without much drama :tm:

Interesting. Thanks @jdoss!

Re: Launch HN: Nestybox (YC S20) – Containers beyond microservices

#58
post #49

Have you considered looking at data science use cases for this (particularly with Python)? I've spent a lot of time tweaking containers meant for data science and one issue I run into a lot is that since you actually spend a lot of time developing inside the containers you want access to a lot of developer tools, but you end up with enormous images as a result. I could see using a tool like this to have one main deve…

Absolutely, that's one of Sysbox's main use-cases, we usually refer to it as 'docker sandboxes'. As you mentioned, the idea is to have your entire dev environment within your fully-customized container, which would allow you to take that environment wherever you go, you are not tied to a particular hypervisor or cloud service-provider. We have heard of people already using Sysbox in Jupyter ecosystem.

That's awesome. Are there public examples of what you'd consider a good setup for that use case that you could point me to? Or is one of the use cases in the Sysbox-EE User Guide a good example (I don't see a 'docker sandbox' one but I may have missed it). Thanks!

Re: Launch HN: Nestybox (YC S20) – Containers beyond microservices

#59
This is very cool.

I'm trying to get a better sense of how this approach differs technically from rootless Docker / usernetes. I understand that it's not there yet, for many reasons, and I see your FAQ about it, but it's clearly working towards the same goal, right?

I think what's going on is that you depend on shiftfs from Ubuntu, and SECCOMP_RET_USER_NOTIF (or something?), unprivileged user namespaces, cgroup namespaces, etc. from the upstream kernel, but the major missing parts in the upstream kernel are procfs and sysfs virtualization and making shifts feel se amless, and so you've written a syscall trapper and a FUSE filesystem that run on the host and emulate the things you need. Is that approximately right?

If so, I'd be really curious whether you see a path to get onto upstream runc at some future point. It seems like you'd need shiftfs to be upstreamed, but if an unprivileged procfs2 + sysfs2 shows up upstream, I think you can use that? And you'd probably fit in at approximately the place something like vpnkit fits in for managing shiftfs?

I have a use case for this sort of thing at work, and we've been exploring rootless Docker and unprivileged containers a bit. I"m trying to get a sense of why to prefer Sysbox EE instead of waiting for (or, ideally, contributing to) upstream support for namespaced procfs/sysfs, for shiftfs, and for properly teaching Kubernetes about user namespaces. I suppose the answer is that your solution works right now, and upstream support might take years?

I guess that puts you in a position much like OpenVZ and even LXC itself, which both had significant out-of-tree code in years past and seemed to be decently successful businesses as stuff slowly got upstreamed.

It seems like the major benefits of Sysbox EE are paid support and not using the same uid_map for each container?

Re: Launch HN: Nestybox (YC S20) – Containers beyond microservices

#60

Earlier quoted context omitted.

So can you run sysbox in sysbox?

Unfortunately not. Sysbox requires "true root" privileges, so it can't run inside a system container deployed by Sysbox itself (since that system container would use the user namespace). You can run Sysbox inside a privileged container however, and in fact the Sysbox test framework relies on this heavily. What use case do you envision for running sysbox in sysbox?

It's mostly curiosity. Probably docker in docker in docker.
Post reply on HN