Hacker News new | ask | show | jobs
by brightball 2864 days ago
Stuff like this makes me feel better about focusing on Ansible Container instead of Docker. You can use it to create multiple different types of containers without being married to Docker itself.
3 comments

The readme used to say that ansible-container was no longer in active development (https://github.com/ansible/ansible-container/commit/2fa778a7...), but it appears to not be the case now.
Is this a viable alternative to Docker? I’m about to launch a fairly large new project and had planned on going with Docker but this definitely causes me concern.
IMO docker is a dead end, it essentially ended up being a glorified ZIP file, the real solution what docker was trying to do (reproducibility) is what Nix does, and if Nix is not a solution then something in that direction.

In nix, you're basically describing the whole dependency tree of your application all the way to libc. When you build your application it builds everything necessary to run it.

The great thing about it is that your CDE essentially is identical to your build system, and the builds are fully reproducible, it takes over being a build system, package manager and as mentioned CDE.

They went even further with that (I have not explored that myself yet) and used the language to describe the entire system (called NixOS) which looks like CMS is no longer necessary and also nix is used for deployment (NixOps, also did not tried it)

If you are into containers you can still deploy into systemd lxc containers, or even create a minimalistic docker image.

The disadvantage is that there is a significant learning curve, it's a new language, and it is a functional, lazily evaluated language. The language is not really that hard, but many people are not used to functional programming. It is especially popular for deployment of Haskell code, since the language is also functional and lazily evaluated.

A good alternative to Docker is podman the cli built on top of libpod (https://github.com/containers/libpod). It has the same api than docker but lets run build and run containers without the need to have root permission.
You can try LXC containers by Ubuntu, this is what Docker was based on initially. The main difference is LXC runs an init in the container so you get a standard multi process OS environment while Docker containers are single process environments.

We have been working on Flockport [1] that supports LXC containers and provides orchestration, an app store, service discovery and repeatable builds. It's still in early preview and we have not started proper outreach but it may be worth looking at.

Ubuntu also provides the LXD project that provides some orchestration across servers.

[1] https://www.flockport.com

As a data point, Docker itself - in Swarm mode - doesn't yet do IPv6 to any decent level natively.

It's seems possible to get IPv6 working through alternative orchestration though. eg Theres a guide on getting it working with Kubernetes and Calico.

But if you're looking for something that's production grade IPv6 - eg people can work out WTF is wrong when problems hit - it's probably not there yet. At least, not for small teams that I can tell. ;)

something like this might be https://www.redhat.com/en/blog/daemon-haunted-container-worl... I'm posting the PR link rather than the projects since the I'm not sure what the intended CLI for actually using the container is.
It just lets you abstract the container. You can use it to build docker or LXC, etc. if a new container comes out you will be able to build that too.
> First, Ansible Container builds its Conductor container. This may involve pulling the Conductor base image from the Docker Hub registry.

Sounds pretty married to me.

See https://docs.ansible.com/ansible-container/getting_started.h...

That could be pulled from anywhere. If the only marriage is the origin source of the base image, it will be a quickie divorce.