7 Alternatives to Docker: All-in-One Solutions and Standalone Container Tools

Edward Kisller
2020-06-23 08:58


Docker is by far the best known and most widely used container platform. But there are other technologies on the container landscape, each with their own individual approaches and use cases.

So, if you’re new to containers, it’s important to consider these alternatives before jumping in and potentially making an IT decision you may later regret.

In this article, we run through 7 alternatives you’re likely to encounter. These include not only all-in-one solutions, but also more granular tools that you can use as either a complement to Docker or part of a completely different container system.

But let’s start by looking at 7 complete solutions that are more direct competitors to Docker.

This guide includes the following:

    1. LXC (Linux containers) and Docker
    2. Hyper-V and Windows containers
    3. rkt and Kubernetes
    4. Podman open-source container engine
    5. runC improve containers portability
    6. containerd container runtime
    7. Artifactory Docker registry
    8. Learn More about Docker
    9. Take the Docker Repository Challenge

1. LXC

LXC is a set of low-level container management tools that form part of open-source project LinuxContainers.org . The technology was a forerunner to Docker and is sponsored by Canonical —the company behind Ubuntu.

User-added image

The goal of LXC is to provide isolated application environments that closely resemble those of full-blown virtual machines (VMs) but without the overhead of running their own kernel.

It also follows the Unix process model, where there is no central daemon. So, in simple terms, instead of being managed by one central program, each container behaves as if it’s managed by a separate program in its own right.
LXC also works in a number of other different ways from Docker. For example, you can run more than just the one process in an LXC container, whereas Docker is designed for running a single process in each container.

However, Docker performs better at abstracting resources. As a result, Docker containers tend to be more portable than their LXC counterparts.

2. Hyper-V Containers

When Microsoft launched Windows Server 2016, it introduced two new container technologies, which offered a lightweight alternative to full-blown Windows virtual machines (VMs)—Windows Containers, which take a similar abstraction approach to Docker, and Hyper-V Containers.

User-added image
Hyper-V containers are more aligned to the VM virtualization model, as they each carry their own kernel. This means they offer greater portability than traditional containers, as applications running within them don’t rely on compatibility with the host system.

They also afford better security as a result of increased isolation from the host operating system and other container environments.

But these benefits come with a trade-off, as Hyper-V containers carry a slightly higher infrastructure footprint than Windows containers and other containers based on a shared kernel.

You can manage Hyper-V Containers using either Docker or the Windows PowerShell. However, each guest environment must be Windows based but not necessarily on the same version as the host operating system.
User-added image

3. rkt

Formerly known as CoreOS Rocket, but since rebranded, rkt has arguably been one of the most viable alternatives to Docker, as it has seen a good level of adoption and a strong ecosystem.
User-added image
The core strengths of the open-source technology are security and, above all, interoperability with other systems and frameworks. For example, it can run Docker containers and uses a pod-based architecture, which works straight out of the box with Kubernetes.

As with LXC, rkt doesn’t use a daemon and thereby provides more fine-grained control over your containers—at individual container level.

Since RedHat acquired CoreOS in 2018, the future direction of the technology has looked increasingly uncertain. Furthermore, the Cloud Native Computing Foundation (CNCF) decided to drop support for the project in August 2019.

The following solutions are also alternatives to Docker. However, unlike Docker, they’re not complete end-to-end solutions. Instead, they’re used either in harmony with other technologies or in place of specific components of the Docker system.

Docker Image Security: 6 Must-Know Tips >

4. Podman

Podman is an open-source container engine, which performs much the same role as the Docker engine .

User-added image
The Podman command-line interface (CLI) also uses commands that are practically identical to those supported by the Docker CLI, except you use podman in place of the docker base command.docker run -ti -v /var/lib/myapp:/var/lib/myapp:Z --security-opt seccomp:/tmp/secomp.json fedora shpodman run -ti -v /var/lib/myapp:/var/lib/myapp:Z --security-opt seccomp:/tmp/secomp.json fedora shdocker ps -a -qpodman ps -a -qdocker images --format "table {{.ID}} {{.Repository}} {{.Tag}}"podman images --format "table {{.ID}} {{.Repository}} {{.Tag}}"

Docker and Podman CLI commands follow the same pattern

But the telling difference between them is the way in which they work behind the scenes. Docker follows the client/server model by using a daemon to manage all containers under its control.

But Podman, like rkt and LXC, does without a central daemon. This can potentially improve the resilience of your container fleets by eliminating a single point of failure.

In other words, if your daemon goes down, you also lose control over your containers. By contrast, in Podman, containers are self-sufficient, fully isolated environments, which you can manage independently of one another.

In addition, Docker gives root permission to the container user by default, whereas non-root access is standard in Podman.

Altogether, these isolation and user privilege features make Podman inherently more secure by design.

5. runC

runC is a lightweight universal OS container runtime. It was originally a low-level Docker component, which worked under the hood embedded within the platform architecture. However, it has since been rolled out as a standalone modular tool.

User-added image
The idea behind the release was to improve portability of containers by providing a standardized interoperable container runtime that can work both as part of Docker and independently of Docker in alternative container systems.

As a result, runC can help you avoid being strongly tied to specific technologies, hardware or cloud service providers.

6. containerd

containerd is basically a daemon, supported by both Linux and Windows, that acts as an interface between your container engine and container runtimes.
User-added image
It provides an abstracted layer that makes it easier to manage container lifecycles, such as image transfer, container execution, snapshot functionality and certain storage operations, using simple API requests.

This not only avoids the hassle of making multiple low-level system calls. It also makes your containers more portable—as those system calls can vary from platform to platform, whereas the API will remain fundamentally the same.

Like runC, containerd is another core building block of the Docker system that has been separated off as an independent open-source project.

User-added image

Alternatives to Docker


Windows Hyper-V





Type of solution

All in one

All in one

All in one

Container engine

Container runtime



No daemon. Better for traditional application design.

Higher level of isolation and portability.

Better security. No daemon. Highly interoperable.

More secure. No daemon. Familiar CLI commands.

Standardized interoperable container runtime.

Easier to manage container lifecycles.


Limited portability. Implementation is more technical.

Larger infrastructure footprint. Windows only.

Limited set of features. Direction of project uncertain.

Container engine only.

Container runtime only.

Container interface only.

Open source



(But compatible with open source)





7. Artifactory Docker Registry

Artifactory Docker registry is a secure private registry that manages Docker images, providing access to remote Docker container registries with integration to build ecosystems.

JFrog Artifactory

It allows setting up unlimited Docker registries, using local, remote and virtual Docker repositories. Working transparently with the Docker client to manage Docker images, created internally and downloaded from remote Docker resources such as Docker Hub.

Local repositories provides a way to deploy and host internal Docker images, which can be shared across organizations. Remote repositories serve as a chaching proxy a registry managed at a remote URL such as https://registry-1.docker.io/ (which is the Docker Hub), where Docker images are cached on demand. Virtual repositories defined in Artifactory aggregate images from both local and remote repositories, allowing access to images that are hosted locally on local Docker repositories, as well as remote images that are proxied by remote Docker repositories, from a single URL.

Artifactory supports promoting Docker images from one Docker repository in Artifactory to another. Artifactory also supports the relevant calls of the Docker Registry API so that it can transparently use the Docker client to access images through Artifactory.


Artifactory Docker Registry Features

8. Learn More about Docker