Recently, CoreOS announced a container runtime called Rocket. The containers are referred to as “App Containers,” and consists of app container image, app container runtime and app container discovery protocol.
Canonical has come up with its own container runtime called LXD (‘lex-dee’), which allows users deploy a full-blown Linux VM via container, and not just individual applications. There is even an OpenStack nova driver for LXD.
One thing to ponder on is, why need new container runtimes when Docker is already there, and is opensource and has good traction?
If you look closer, the problem which everyone is trying to solve is handling multiple distributed containers in a cloud. In other words, orchestration and management of containers in a cloud environment. This requires tools for managing the containers, managing the image lifecycle of the containers, container networking and orchestration among other functionalities. These are required to make containers useful for actual production use cases in a cloud.
Docker’s initial focus was on single app containers however with introduction of Docker Machine, Docker Swarm, Docker Compose and other related projects, docker is getting into that space. Rocket is trying to solve the same problem in its own way. LXD takes it a step further and wants to ensure that a container can have a full fledged virtual machine and not just single app containers.
These are really interesting times for container ecosystem. We really need to see how things pan out in the coming days.