It's used to make stuff easier like XAMPP on Windows, or CrowdStrike. Only it's relied on in productionWhat you dislike about Docker? I ask because its interesting to hear dissenting voices when in most places Docker is almost only praised.
It's used to make stuff easier like XAMPP on Windows, or CrowdStrike. Only it's relied on in productionWhat you dislike about Docker? I ask because its interesting to hear dissenting voices when in most places Docker is almost only praised.
I had a particularly bad time with layers on a docker instance that was our build machine. It had accumulated thousands of them, and we only discovered that when the build stopped working. A whole day of no-fun for me. ZFS is so, so much better.What you dislike about Docker? I ask because its interesting to hear dissenting voices when in most places Docker is almost only praised.
So it's super easy to launch something you don't understand with flaws and vulnerabilities you don't know about? One person's productivity is another's technical debt....On the other hand Docker's hub filled with turnkey containers which allows you to spin up a service with a single command...always felt like an huge productivity booster to me...
I did a nginx/PHP/MariaDB set-up from Windows to FreeBSD last night bare-metal. Prior to that was years of Linux. nginx/PHP/MariaDB sets up mostly the same everywhere.I mostly made this topic to hear about other people's experience with BSD jails or bare metal compared to Docker on Linux and eventually to collect some tips & tricks to get started with this new approach after years of Docker.
Exactly. The definition of Docker or OCI containers is "Linux binaries".There's no such thing as "OCI style containers". Much like "Cloud Native", or "Serverless". It's marketing rubbish.
There's no such thing as "OCI style containers". Much like "Cloud Native", or "Serverless". It's marketing rubbish.
Technically, yes (OCI spec is just a document after-all). But when people talk about the ecosystem, they really just mean pulling crap off Docker Hub and expecting it to work. Which of course it won't if not using x86_64 Linux (the default).OCI doesn't define the ABI of executables.
There are OCI images of FreeBSD available on the official website.
OCI doesn't define the ABI of executables.
There are OCI images of FreeBSD available on the official website.
Technically, yes (OCI spec is just a document after-all). But when people talk about the ecosystem, they really just mean pulling crap off Docker Hub and expecting it to work. Which of course it won't if not using x86_64 Linux (the default).
People don't pull from DockerHub anymore because of the rate limits, and all kinds of architectures are supported in registries. Pople don't pull random crap but mostly official images. A jail.conf is not enough to ship applications.Technically, yes (OCI spec is just a document after-all). But when people talk about the ecosystem, they really just mean pulling crap off Docker Hub and expecting it to work. Which of course it won't if not using x86_64 Linux (the default).
Mostly x86_64 architecture, especially if you stick to official images they don't even offer or test other architectures.People don't pull from DockerHub anymore because of the rate limits, and all kinds of architectures are supported in registries.
Official images are included as "random crap". You know your use-case better than some other group's bundled set of software. Its basically the same issue as NPM/crates.io/PIP/CPAN. Its a very "technical debty" way of working.Pople don't pull random crap but mostly official images. A jail.conf is not enough to ship applications.
The latest trendy place will be no different.People don't pull from DockerHub anymore because of the rate limits
Mostly x86_64 architecture, especially if you stick to official images they don't even offer or test other architectures.
And as for OS; since Docker *is* Linux by definition, it uses:
This has to be emulated by other operating systems. OCI as a standard only exists as Linux/Docker. Its purely marketing to pretend it is a viable cross platform solution. An OCI Image for FreeBSD won't run on Linux and vice versa. So what is the point? Might as well be a tarball.
- cgroups (control groups)
- namespaces (PID, network, mount, etc.)
- seccomp
- aufs / overlayfs
- Linux syscall ABI
Official images are included as "random crap". You know your use-case better than some other group's bundled set of software. Its basically the same issue as NPM/crates.io/PIP/CPAN. Its a very "technical debty" way of working.
A tarball and a jail.conf is certainly good enough to ship applications.
pkg to install packages into a Jail. This can be done automatically with templates using a jail management tool. You don't ship applications with containers; that's a vector for compromise. Certainly not with an unvetted registry also. FreeBSD has a community vetted repository of applications called the Ports Tree. A Unix Container (ie. Jails) was designed to securely separate and compartmentalize processes. A better way to deploy applications at scale is to use something like Ansible. Separation of concerns here.Not if they require any kind of blob or proprietary component (which is very important within the industry)I can build, push & download images for amd64, arm64, ppc64le & s390x from Github Container Registry and others.
Virtualization means you are running Linux. As mentioned Docker *is* Linux so this isn't a very interesting solution.You can run Linux container in FreeBSD with sysutils/podman. I haven't tried yet but in theory you can run FreeBSD images with the Kata OCI runtime that uses virtualization.
It can't even be run rootless? Why do people even talk about it.It's not good enough. Wait til podman can be run as rootless.
Then people will complain its "old" and "insecure" if you pin old versions.With the difference that with containers there's true isolation and the whole thing is reproducible if you pin the versions.
Hello,So the question I'd like to ask to BSD community is: when you're on BSD do you miss Docker and in its absence what's your favorite way to spin up and manage services on a server?
Exactly my thoughts as well. At best, I think sharing "set up scripts" is a somewhat acceptable alternative solution because then at least there is some accountability and transparency vs blindly loading black boxes. The "download and launch this (with root privileges)" mindset just makes me cringe.You can callpkgto install packages into a Jail. This can be done automatically with templates using a jail management tool. You don't ship applications with containers; that's a vector for compromise. Certainly not with an unvetted registry also. FreeBSD has a community vetted repository of applications called the Ports Tree. A Unix Container (ie. Jails) was designed to securely separate and compartmentalize processes. A better way to deploy applications at scale is to use something like Ansible. Separation of concerns here.
Containers run in sandboxes. In the case of FreeBSD it would be even better with runj that uses Jails.You can callpkgto install packages into a Jail. This can be done automatically with templates using a jail management tool. You don't ship applications with containers; that's a vector for compromise. Certainly not with an unvetted registry also. FreeBSD has a community vetted repository of applications called the Ports Tree. A Unix Container (ie. Jails) was designed to securely separate and compartmentalize processes. A better way to deploy applications at scale is to use something like Ansible. Separation of concerns here.
podman can be run rootless only on Linux ATM. Virtualization doesn't solve the packaging problem.Not if they require any kind of blob or proprietary component (which is very important within the industry)
Virtualization means you are running Linux. As mentioned Docker *is* Linux so this isn't a very interesting solution.
Qemu / Bhyve has existed for many years. Just use that. Kata and OCI runtimes are unnecessary.
It can't even be run rootless? Why do people even talk about it.
Then people will contain its "old" and "insecure" if you pin old versions.
It's not a black box if you can build it yourself with `docker build`.Exactly my thoughts as well. At best, I think sharing "set up scripts" is a somewhat acceptable alternative solution because then at least there is some accountability and transparency vs blindly loading black boxes. The "download and launch this (with root privileges)" mindset just makes me cringe.
Makes sense since Docker/podman is specifically implemented for the Linux kernel and can never run on another platform by design.podman can be run rootless only on Linux ATM.
Ports solves the packaging problem, Virtualization/Emulation solves the ABI problem.Virtualization doesn't solve the packaging problem.
Exactly my thoughts as well. At best, I think sharing "set up scripts" is a somewhat acceptable alternative solution because then at least there is some accountability and transparency vs blindly loading black boxes. The "download and launch this (with root privileges)" mindset just makes me cringe.
Wait. how is that different than building a jail and tar'ing it up? Seriously, I'm not an expert in docker or even all that smart. If I build a jail, tar it up, send it to my other server how is this not the same as "an image"?It's not a black box if you can build it yourself with `docker build`.
Oh? You got my attention. what's SMF?You can sort of do this with SMF. You can specify a service instance (a configuration of a service), and all of it's dependencies using an SMF manifest, then boot a Jail/Zone from that manifest. This is all optional though; instead of it being a terrible mish-mash of functions like docker.
This is not true.Makes sense since Docker/podman is specifically implemented for the Linux kernel and can never run on another platform by design.
Ports solves nothing. Packaging is a mess in all Linux distros. Virtualization comes with overhead and is meant to ship operating systems, not packages.Ports solves the packaging problem, Virtualization/Emulation solves the ABI problem.
An aggregator can be anything. With Docker you can package any application.Docker is an aggregator, not a packager.