4 ms·
"The FreeBSD host can run any other FreeBSD as long as its not newer then the host system version." Docker does not have this limitation. You can run a contain
by wwarner 3y ago
"The FreeBSD host can run any other FreeBSD as long as its not newer then the host system version."
Docker does not have this limitation. You can run a container that is based on a newer version of Linux than the host.
- kstrauser 3y agoDepends what you mean by "Linux". You can possibly use a newer userland, but containers share the kernel with the host. That's kind of the whole point of containers: they're just a set of processes that are grouped together and configured with certain restrictions.
- chungy 3y agoThey have that limitation, but it doesn't manifest in quite a simple way. If the container's glibc and all other binaries require Linux 6.3, you're not running it on a 5.18 host. FreeBSD is developed as a whole unit. It makes it easier to reason that a 13.2 userland doesn't run on a 12.4 kernel.
- LegionMammal978 3y ago> If the container's glibc and all other binaries require Linux 6.3, you're not running it on a 5.18 host. FWIW, it would take quite a long time for glibc itself to start requiring Linux 6.3 on its current targets. Since glibc 2.24 (Aug. 2016), the minimum supported kernel has been at most Linux 3.2 (Jan. 2012), on every target that has existed that long. And that's the smallest that the gap between the glibc and Linux releases has ever gotten (except for new targets). Extrapolating, we'd have to wait for glibc 2.47 (Feb. 2028) to require Linux 6.3 (Apr. 2023), if that gap were to be repeated, something which I don't find particularly likely. That is to say, with the exception of new targets, you'll rarely see a userland that absolutely requires the latest Linux kernel, even possibly if it suggests that kernel for the best support.
- JdeBP 3y agoIt's the "all other binaries" part that will catch you. You've completely overlooked that part. For example: Per its own README, systemd requires Linux 3.15 at absolute minimum, recommends Linux 4.15 for baseline functionality to at least work, and specifies Linux 5.7 for full BPF functionality.
- ori_b 3y agoThat's incorrect. (Well. Technically it's kind of true. You can run a container based on a newer kernel, it'll just crash when you use any new features)
- bandrami 3y agoUnless that container uses kernel semantics that changed between kernel versions, or a feature that was added in the new version. Which invariably happens. See the RHEL 6/7 upgrade and the changes to syscall.