This is one of those things that I've always been too scared to ask so I'm just going to ask it now: Is there a distro designed exclusively for running docker (and perhaps other) containers that also contains a friendly web UI for people who have no idea how docker actually works?
I'm familiar with Proxmox, but it doesn't natively support docker.
OpenSUSE MicroOS is basically built around the idea of an "immutable" (read disincentivized to change) core while the majority of user space runs in a Podman container.
It was originally developed as an absolute minimal distro for running containers on servers, but the immutable desktop movement led them to develop a desktop user-facing variant.
Other ideas that are very similar: Fedora SilverBlue (very similar, more mature) and VanillaOS (based on Flatpak insteak of Podman/Docker, very new)
RancherOS if you're looking to use something heavily tested but it's got a few weird features like most of the OS also being in containers. If you want something light to play with and get a vanilla docker experience, your best bet is likely Boot2Docker with Portainer.
docker-the-company maintained https://github.com/linuxkit/linuxkit when I worked there. I have no idea who maintains it now, but it looks like it is still active (presumably still docker-the-company, since their adopters list [1] lists docker desktop).
Proxmox with native docker support would've been a dream. I know, it's easy to add it on top (since it's basically a layer over debian), but you still wouldn't get the native GUI support and the proxmox features that come with it. I don't know why they are so keen on not adding docker, and only focusing on LXC. LXC is fine, but it's pretty clear that it is far from being as popular or commonly used as Docker.
VMware's Photon OS is largely designed as a container host - I've been using it for a few years now, and it's excellent. The team are really receptive to external contributors too (it's hosted on GitHub)!
Kind of a left-field pic, and def not exclusively for running docker, but TrueNAS Scale offers a nice abstraction for running docker containers, with the simple webui interface you're asking for. I believe it uses K8s under the hood, and it's coupled with NAS software, but this seems maybe the closest to what you're asking for that I've seen.
I've never used it, but your description made me think of Webmin that I used a long time ago, and apparently the same creators have developed Virtualmin and Cloudmin that give you a web interface for managing Docker images and containers.
Closest thing is probably Synology... but it's pretty basic and you need to use the terminal for some advanced things. I don't know how much a GUI helps because there's still a lot of terminology that needs to be understood.
For the UI part cockpit [1] lets you manage containers (amongst many other things). I use it with fedora for my home server and rarely feel the need to drop into the command line in my day to day.
Its paid SW, but I like Unraid OS for this. It supports Dockers, VMS, and of course an easy to manage hard drive array with parity and ssd caching support. Just being able to chuck all your old drives that are laying around, add them to the pool and bring new life to old HW was worth it for me. The docker and VM support are nice extras.
Not sure if that's what you're looking for but there are Kubernetes distros. And yes, this also includes a relatively nice Web UI. But it's probably not easy to setup.
The quick answer is no. But what is a friendly web UI other than a few 10s of hours work on top of the distros mentioned here? There are a few distros that are very close; they just substitute the web ui for the docker cli. I’ve enjoyed RancherOS, and I want to setup Alpine to run in RAM (it can do that) for some super-fast rPi nonsense.
I am working on something like it. It's a specialized, immutable Linux os that blends networking, nas and containers.
We found that even with a web GUI, containers are just too complicated for the typical user "that knows nothing about containers".
Even with a GUI, no matter how nice it is, you need to learn about env vars, port mappings, cni networks, bridging, volume mounts, images, tags, host isolation, etc etc..
Our solution is to wrap apps into pre-packaged recipes. Pretty big trade-off of course, but it makes the installation and management completely fool-proof afterwards.
You can see some screen shots in the documentation here:
This title feels pretty inaccurate. It's not an overview of single-purpose Linux distributions, it's an overview of a few Linux distributions whose single purpose is to host containers. I got excited to read about weird Linux variants for obscure use cases but this was very vanilla and disappointing.
This isn't container-related like the article, but I recently came upon a specialized Linux in the wild. I bought a compact flash card off Amazon for to use as a drive in a Tandy 1000. I went to partition it and to my surprise it had a few partitions. One was an ext2 one that resembled some sort of root directory. Looking through the files, it appeared it was for a distro called AST Linux that was originally designed to run off compact flash and aimed at managing networked telephones. It also had firmware images for a Cisco SPA232D VOIP Adapter.
Interesting article. For folks who need to put together their own distro, especially for embedded applications, Yocto and Buildroot both lower the barrier to rolling your own and getting exactly what you need to something quite reasonable.
Agree, I'm using Yocto to roll an embedded distribution (PrintNanny OS). Combined with swupdate, I now have extraordinarily reliable upgrades using an A/B partition scheme.
The result is way more maintainable than previous iterations of PrintNanny OS images, which used a combination of Ansible and Packer to bake a "golden" image based on Raspberry Pi OS.
I haven't done much with Yocto, but I had very good experiences with Buildroot, particularly with getting helpful answers to noob questions I posted on stack overflow. One was answered by Thomas Petazzoni who, I think, is one of the main people behind Buildroot.
Yocto does not have a low barrier to entry, at least when it comes to making lots of customizations and then supporting them over time (e.g. upgrades). If you are willing to climb its learning curve, it definitely would be my recommendation for rolling a custom system.
Back in the very early aughts I used to carry around to friends houses a binder full of movies also containing a bootable CD with some linux distro that existed explicitly for playing media. I don't recall the name, it's likely long dead.
When whatever movie we wanted to watch failed to play on their computer, likely due to codec problems (it used to be a hassle before VLC) I'd pop the bootable Linux CD in, reboot and bam we were watching the movie. It was great.
Knoppix was great for that. It wasn’t the lack of VLC necessarily that was the problem it was all those proprietary codecs that essentially install anti-cheat rootware that would also DMCA anyone who made open source codecs that could read the media.
FOSDEM talk about Fedora CoreOS, Ubuntu Core, openSUSE MicroOS, and Bottlerocket OS and how they all tackle the single purpose problem in their own way.
As a person who only occasionally needs Linux for specific purposes, something I‘d like is a well-supported mainstream distro for lightweight, high performance servers. Think NGINX, routers, local web proxies, that kind of thing.
Something akin to BSD but Linux. Ideally something that supports a two-stage deployment where you compile for the exact target CPU and then the final thing has no extraneous components at all.
> I‘d like a well-supported mainstream distro for lightweight, high performance servers. Think NGINX, routers, local web proxies, that kind of thing.
This might be a shot in the dark, but wouldn't Alpine Linux be a good general purpose candidate for this: https://www.alpinelinux.org/about/
Many use it as a basis for container images, but it also runs pretty well as a regular Linux distro, albeit musl and busybox might present some compatibility challenges in some cases. Regardless, it seems to be pretty lightweight and widely supported, most software that you'd expect is also available and generally there are few surprises.
You say you need a distro which to me implies you want packages and a repository and updates, installation of packages on the fly, etc. But you also say you want to make a final image with nothing extra except your main apps, which makes me think you don't want a distro.
I'd think about what your goals are and optimize for that use, it's going to be hard to do both the things you mention at once since they are somewhat at odds with each other. IMHO start with Debian, with minimal packages it's very slim yet you have the full power of their packages when necessary.
I'm sure nix could do what you're describing (if I read it correctly), although you'd lose the usual benefit of public binary caches, and might need to maintain some patches to cut down features. Gentoo also sounds right; pick the USE flags that describe what you want included, set your CFLAGS to target your CPU, and get a perfectly customized distro.
You can always have a vanilla Debian or vanilla Arch install and add things on an as-needed basis and build the OS from scratch, minimizing complexity and have them as single-duty OSes.
> since all of the read-only parts of openSUSE MicroOS have now been moved to /usr, the upcoming 4.2.0 release of transactional-update would also be able to apply new snapshots without rebooting
Huge improvement, reboot to activate was a major downside.
But do you update the kernel without rebooting? Previously transactional-update can update the kernel and call dracut to make a new boot image. I suppose this still needs a reboot?
Is there a minimal or custom Linux image suitable for the following scenario? A custom Linux + web app combination:
- a Linux image that can upload to a VPS
- a Linux image including your web app and essential tools (web server, database)
- anything not needed from the Linux image is removed (tools, utilities)
The idea is that a custom Linux image (which includes your pre-installed web app) can be installed to any VPS: pre-configured to be Linux only for your web app. (Note: this a scenario without docker.)
In the days before Docker what we would use is CentOS with custom scripts using Anaconda[1]. You start with the base system and then add on whatever you need. You can also configure /etc however you need. The output is an ISO of your own custom Linux distribution.
One neat thing about Anaconda is you can add a provision script that runs on initial boot. So if you need to "bake" in your app but leave a certain amount of configuration for install-time, that's the way you do it.
LeoPanthera|3 years ago
I'm familiar with Proxmox, but it doesn't natively support docker.
JHonaker|3 years ago
It was originally developed as an absolute minimal distro for running containers on servers, but the immutable desktop movement led them to develop a desktop user-facing variant.
Other ideas that are very similar: Fedora SilverBlue (very similar, more mature) and VanillaOS (based on Flatpak insteak of Podman/Docker, very new)
dicknuckle|3 years ago
tych0|3 years ago
[1]: https://github.com/linuxkit/linuxkit/blob/master/ADOPTERS.md
brucethemoose2|3 years ago
Its almost certainly the most performant distro in this huge thread (unless your host is ARM).
mardifoufs|3 years ago
Fnoord|3 years ago
Proxmox is neat and you can run any OS under the hood including the suggestions mentioned.
You could also go for NixOS and declare you need OCI (e.g. Docker or Podman) in your Nix config.
GordonS|3 years ago
fraudster|3 years ago
https://www.truenas.com/docs/scale/scaletutorials/apps/docke...
oso2k|3 years ago
rz2k|3 years ago
https://www.virtualmin.com/documentation/cloudmin/virtualiza...
gjsman-1000|3 years ago
ThatMedicIsASpy|3 years ago
Is this a server? CoreOS
Portainer or Cockpit for web UI
trufas|3 years ago
[1] https://cockpit-project.org/
bayank|3 years ago
blablabla123|3 years ago
senectus1|3 years ago
comfypotato|3 years ago
dwiechert|3 years ago
smashed|3 years ago
We found that even with a web GUI, containers are just too complicated for the typical user "that knows nothing about containers".
Even with a GUI, no matter how nice it is, you need to learn about env vars, port mappings, cni networks, bridging, volume mounts, images, tags, host isolation, etc etc..
Our solution is to wrap apps into pre-packaged recipes. Pretty big trade-off of course, but it makes the installation and management completely fool-proof afterwards.
You can see some screen shots in the documentation here:
https://sentinelc.com/docs/user-guides/administration/manage...
unknown|3 years ago
[deleted]
fsflover|3 years ago
candiddevmike|3 years ago
hhh|3 years ago
63|3 years ago
iguessthislldo|3 years ago
https://www.astlinux-project.org/about.html
taylodl|3 years ago
eschneider|3 years ago
grepLeigh|3 years ago
The result is way more maintainable than previous iterations of PrintNanny OS images, which used a combination of Ansible and Packer to bake a "golden" image based on Raspberry Pi OS.
nfriedly|3 years ago
I haven't done much with Yocto, but I had very good experiences with Buildroot, particularly with getting helpful answers to noob questions I posted on stack overflow. One was answered by Thomas Petazzoni who, I think, is one of the main people behind Buildroot.
voakbasda|3 years ago
donatj|3 years ago
When whatever movie we wanted to watch failed to play on their computer, likely due to codec problems (it used to be a hassle before VLC) I'd pop the bootable Linux CD in, reboot and bam we were watching the movie. It was great.
guestbest|3 years ago
MichaelMoser123|3 years ago
dharmab|3 years ago
vyskocilm|3 years ago
dicknuckle|3 years ago
parentheses|3 years ago
jiggawatts|3 years ago
Something akin to BSD but Linux. Ideally something that supports a two-stage deployment where you compile for the exact target CPU and then the final thing has no extraneous components at all.
Maybe Nix?
KronisLV|3 years ago
This might be a shot in the dark, but wouldn't Alpine Linux be a good general purpose candidate for this: https://www.alpinelinux.org/about/
Many use it as a basis for container images, but it also runs pretty well as a regular Linux distro, albeit musl and busybox might present some compatibility challenges in some cases. Regardless, it seems to be pretty lightweight and widely supported, most software that you'd expect is also available and generally there are few surprises.
It does have a somewhat short release lifecycle, though: https://endoflife.date/alpine
qbasic_forever|3 years ago
I'd think about what your goals are and optimize for that use, it's going to be hard to do both the things you mention at once since they are somewhat at odds with each other. IMHO start with Debian, with minimal packages it's very slim yet you have the full power of their packages when necessary.
yjftsjthsd-h|3 years ago
Eisenstein|3 years ago
imwillofficial|3 years ago
legrande|3 years ago
klysm|3 years ago
carlsborg|3 years ago
Huge improvement, reboot to activate was a major downside.
kccqzy|3 years ago
vanilla-almond|3 years ago
- a Linux image that can upload to a VPS
- a Linux image including your web app and essential tools (web server, database)
- anything not needed from the Linux image is removed (tools, utilities)
The idea is that a custom Linux image (which includes your pre-installed web app) can be installed to any VPS: pre-configured to be Linux only for your web app. (Note: this a scenario without docker.)
deckard1|3 years ago
In the days before Docker what we would use is CentOS with custom scripts using Anaconda[1]. You start with the base system and then add on whatever you need. You can also configure /etc however you need. The output is an ISO of your own custom Linux distribution.
One neat thing about Anaconda is you can add a provision script that runs on initial boot. So if you need to "bake" in your app but leave a certain amount of configuration for install-time, that's the way you do it.
[1] https://access.redhat.com/documentation/en-us/red_hat_enterp...
tooltower|3 years ago
neckardt|3 years ago
> The following subscription-only content has been made available to you by an LWN subscriber.
Looks like someone with a subscription submitted the link to HN, allowing us to read the article.
unknown|3 years ago
[deleted]
vram22|3 years ago
https://jugad2.blogspot.com/search/label/Finnix?m=0
sylware|3 years ago
:)
intelVISA|3 years ago
:)
arch1e|3 years ago