Question, we're a long time Windows shop and just recently have been spinning up some linux containers (redis, rabbitmq). The decision fell to me and I went with Ubuntu. (I'm confident in our networking team that everything is firewalled well and not externally accessible so these are local LAN only.)
Should I instead be using Alpine? If someone is isn't distro aficionado and is utilizing "mainstream" docker images, what's the recommendation?
> just recently have been spinning up some linux containers (redis, rabbitmq)
Not sure if you're trying to make your own containers or not, but stick to the stock Docker Hub containers as much as possible. If there's an "official" Redis container, use that, regardless of the base image. Since it's supported, other people will be fixing bugs and upgrading things so you don't have to.
> If someone is isn't distro aficionado and is utilizing "mainstream" docker images, what's the recommendation?
For non-container stuff, CentOS is the "enterprisey" distro that's safest in case you one day have to support an app that only supports RHEL (and it's the base for Amazon Linux, in case you use AWS).
For container stuff, it's a toss-up between Ubuntu and Debian; I'd use Ubuntu for developer-oriented stuff, and Debian for anything else. You can of course use Alpine for containers, but there are some maintenance/development costs that come as well, so I only recommend Alpine if you really need to save space.
Ubuntu will likely be more compatible and easier to work with. The version you get in docker is very minimal as well, although maybe not quite as tiny as alpine.
The maturity of your organisation’s use of containers is quite important: Alpine is a fantastic platform to build very lightweight images, but there’s organisations where people want containers that have everything. I’d say, as your usage of and experience with containers grows, aim to build more lightweight images and eventually you’ll get to the point where Alpine is the logical next step, rather than being the right choice because people on HN love it.
Distros seem to be having a hard time updating glibc, and there are known vulnerabilities with the pinned version of most of them. Musl/Alpine doesn't have that problem, because it doesn't use glibc.
Ubuntu comes with snaps. If you don't use snaps, they are consuming a not insignificant portion of boot time. Use Debian if you need something glib-based. If you must use Ubuntu, make sure you are using slim: you don't need manpages etc. in a production container.
Overall boot time is affected by image size, because your cluster has to download that image from $SERVER. Alpine is smaller than most, scratch is even better (if you can pull it off). Building containers with Nix can result in stupidly small images.
Its not clear-cut, but hopefully that helps you make a choice.
I think Ubuntu server is a fine choice for your needs. I tend to use it on small VPSes as it's easy to setup and get running, relatively up to date and in wide usage.
Should I instead be using Alpine? If someone is isn't distro aficionado and is utilizing "mainstream" docker images, what's the recommendation?