SSD Nodes Learn Hosting plans →
Guides Matt ConnorBy Matt Connor

Is Docker free? Engine vs Desktop vs Hub

Docker Engine on a VPS is free. Docker Desktop holds the licence: free below 250 staff and $10M revenue. Docker Hub pull limits are the one cost a VPS meets.

Is Docker free? The short answer

Is Docker free? On a server, yes, completely. Docker Engine, the part that runs containers on a Linux VPS (virtual private server), is open source under the Apache License 2.0 and costs nothing, whether you install Ubuntu's docker.io package or the docker-ce packages from Docker's own repository. Docker Desktop is the product with a paid tier, and it is a laptop application that never runs on a server. The one Docker cost that reaches a VPS in practice is the pull rate limit on Docker Hub, and a free account is enough for most servers.

If you arrived here from "O Docker é gratuito?" or "¿Docker es gratis?", the answer is the same. For one person or a small company, Docker is free everywhere, on the laptop and on the server.

Which Docker are you asking about?

The word "Docker" names four different things, and the price depends on which one you mean.

  • Docker Engine is the daemon, dockerd, plus the docker command line tool. It runs on Linux and it is what a VPS runs. Its source code is the Moby project on GitHub.
  • Docker Desktop is a desktop application for macOS and Windows, with a Linux desktop build as well. It bundles a Linux virtual machine, Docker Engine inside that machine, a graphical interface and an optional Kubernetes cluster. This is the product with a licence.
  • Docker Hub is the public registry at hub.docker.com where images such as nginx and postgres are stored. Using it is free, but downloads are metered.
  • Docker, Inc. is the company that sells the subscriptions.

When a developer asks whether Docker is free, they usually mean Engine, and the answer is yes with no conditions. When a company's legal team asks, they usually mean Desktop, and the answer is yes up to a size limit.

Is Docker Engine free on a server?

Yes. Docker Engine is built from the Moby project, which Docker, Inc. publishes under the Apache License 2.0. Apache 2.0 is a permissive open source licence: you may run it and change it, for business or for a hobby, with no fee and no count of users or machines. The same licence covers containerd (the runtime that starts the containers), runc, BuildKit and the Docker Compose plugin. Nothing in that stack asks who you are or how large your company is.

On Ubuntu 24.04 there are two ways to install it, and both are free.

The first is the docker.io package from Ubuntu's own universe repository. Ubuntu builds it and signs it, and one command installs it. The Compose plugin is a separate Ubuntu package, docker-compose-v2.

sudo apt update
sudo apt install -y docker.io docker-compose-v2

The second is Docker's own apt repository at download.docker.com, which provides docker-ce. The "ce" stands for Community Edition, a name left over from 2017, when Docker also sold an Enterprise Edition. That Enterprise Edition was sold to Mirantis in 2019, so there is no paid engine to buy from Docker today. The docker-ce packages follow upstream releases within days. The docker.io package moves on Ubuntu's schedule, usually a security fix and an occasional version bump, so it is typically several releases behind. Which one you choose changes the version number and the update cadence, not the price or the licence. The full repository setup, with the signing key and the docker group, is in the Docker on a VPS install guide, and the dnf version of the same steps is in the Rocky Linux Docker install guide. Do not install both packages on one machine. They ship the same binaries, so remove one before adding the other.

Does Docker Desktop cost money?

Sometimes. Docker Desktop is licensed under the Docker Subscription Service Agreement, not under Apache 2.0. As read on 19 September 2026, the licence page at docs.docker.com/subscription/desktop-license says:

Docker Desktop is free for: Small businesses (fewer than 250 employees AND less than $10 million in annual revenue), Personal use, Education, Non-commercial open source projects
Docker Desktop requires a paid subscription for: Professional use in larger organizations, Government entities, Commercial use beyond the free tier limits

The paid subscriptions that include Docker Desktop are Docker Pro, Team and Business. The same page states, in one sentence, why none of this touches your server:

The licensing and distribution terms for Docker and Moby open-source projects, such as Docker Engine, aren't changing.

Read the small business condition carefully. The word is AND. A company with 40 employees and $30 million in revenue needs a paid subscription. A company with 500 employees and $2 million in revenue also needs one. Both numbers must be under the line for Desktop to be free. Government bodies need a paid subscription at any size.

The reason Desktop never appears on a VPS bill is technical rather than legal. Containers are a Linux kernel feature. Docker Desktop exists to give macOS and Windows a Linux kernel: it starts a virtual machine and runs Docker Engine inside it. A Linux VPS already is a Linux kernel, so Desktop has nothing to add, and there is no package for a headless server. Docker Desktop for Linux does exist, but it needs a graphical desktop session and KVM (kernel-based virtual machine) support, and it also starts a VM. On a server you install Engine directly, and the licence question never comes up.

What does a solo developer or a small team pay?

Nothing, anywhere. Docker Desktop on the laptop is free under the personal or small business terms. Docker Engine on the VPS is free under Apache 2.0. A free Docker Hub account covers the pulls. The first invoice appears when the company passes 250 employees or $10 million in revenue, and it appears for the laptops that run Desktop, not for the servers.

This is the same shape as the pricing of many tools you would run on that server. Whether n8n is free and whether Nextcloud is free both come down to the same split: the software you run yourself costs nothing, and the hosted or enterprise layer is the product.

Is Docker Hub free, and what are the pull limits?

Docker Hub is where docker pull nginx gets its bytes. A Personal account is free and includes unlimited public repositories and one private repository. Pulls are rate limited, and the limit depends on whether the pull is authenticated. Docker announced new limits in early 2025 and changed the plan before it took effect, so figures in older articles, including the ones quoted per hour, do not match the page today. Read the limits from docs.docker.com/docker-hub/usage rather than from memory. As read on 19 September 2026, they are:

ChartDocker Hub pull limits per 6 hours, as read 19 September 2026
The data behind this chart
[
  {
    "plan": "Unauthenticated, per IPv4 address or IPv6 /64",
    "pulls_per_6_hours": 100
  },
  {
    "plan": "Personal account, free, logged in",
    "pulls_per_6_hours": 200
  }
]

An unauthenticated client gets 100 pulls per six hours, counted per IPv4 address or per IPv6 /64 subnet. A free Personal account, logged in with docker login, gets 200 pulls per six hours, counted per account rather than per address. Pro, Team and Business accounts have no pull limit.

Docker defines a pull as the version check plus any download that follows it. A docker pull of an image you already have still counts, because the daemon fetches the manifest with a GET request to compare it. HEAD requests to the manifest do not count. A multi-architecture image counts one pull for each architecture you fetch, which is one on an ordinary single-platform server.

On a VPS, the per-address limit is usually yours alone, because the server has its own public IPv4 address. It stops being yours alone in two cases. The first is when your provider places several customers behind one shared IPv4 address, which is how some IPv6-first plans work. The second is when you run a cluster whose nodes reach the internet through one NAT (network address translation) gateway. In both cases the 100 anonymous pulls are shared with strangers or with your other nodes, and the fix is to log in.

When the limit is reached, Docker Hub answers with HTTP status 429. Docker's documentation gives the message as toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading, followed by a link. A bare 429 Too Many Requests with no further text is a different limit, the abuse limit, which triggers on raw request volume rather than on pull count.

Four patterns push a single VPS over the limit:

  • An automatic updater such as Watchtower checking every image every few minutes.
  • A CI (continuous integration) runner on the box rebuilding images from FROM lines without a cache.
  • A docker compose pull across a stack with thirty services.
  • A cluster node restart that pulls every image at once.

The fixes, in order of effort:

  1. Log in. docker login with a free Personal account raises the limit and moves it off the shared address. Credentials are stored per user in ~/.docker/config.json, so a systemd service or a root cron job that pulls images must be logged in as that user, or its pulls are anonymous.
  2. Pull less often. Set update checkers to hours, not minutes, and run one docker compose pull for the stack instead of one per service.
  3. Pull from elsewhere. Many projects publish the same image on ghcr.io or quay.io, and those registries are not counted against Docker Hub.
  4. Run a pull-through cache. The official registry image can proxy Docker Hub, so every node pulls from your cache and Docker Hub sees one pull per image. This is for a fleet, not for one box.

You can check how many pulls remain without spending one. Docker documents a two-step check on its pull usage page: fetch a token, then send a HEAD request and read the headers.

sudo apt install -y jq
TOKEN=$(curl "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull" | jq -r .token)
curl --head -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest

The response carries ratelimit-limit and ratelimit-remaining headers. The w=21600 suffix on each is the window in seconds, which is six hours. To check a logged-in account instead, add --user 'username:password' to the first curl. The HEAD request itself is not counted.

Why are people moving away from Docker?

The question comes up in every search box, and the answer is three separate events, none of which changed what a server pays.

The 2021 Docker Desktop licence change. On 31 August 2021 Docker announced that Desktop would need a paid subscription in larger companies, with a grace period until 31 January 2022. The thresholds were the same 250 employees and $10 million that apply today. Companies above the line had to buy seats or replace Desktop, and some replaced it with Podman Desktop, Rancher Desktop, Colima or a plain Linux VM. Servers were not affected.

Kubernetes removed dockershim in version 1.24, in May 2022. The kubelet stopped talking to Docker Engine directly and now uses containerd or CRI-O through the CRI (Container Runtime Interface). Images built with Docker still run unchanged, because they are OCI (Open Container Initiative) images, and containerd is the same runtime that Docker Engine uses underneath. The headline "Kubernetes drops Docker" was about the shim, not about the image format.

Rootless Podman. Podman runs containers without a daemon and without root by default, and its command line is close enough to Docker's that alias docker=podman covers most daily use. Red Hat ships it as the default on RHEL and on the Enterprise Linux rebuilds, where Docker Engine is not in the base repositories. The Podman versus Docker comparison for a VPS covers where the compatibility ends, and the list of web UIs that work with a rootless engine covers the management side.

Docker Engine on a VPS in 2026 is as free as it was in 2016.

Is Docker like GitHub?

Only at the surface. Both are hosted services where people publish and download things, but they hold different things: Docker Hub stores built container images, and GitHub stores source code. A project usually lives on both, with the Dockerfile in a GitHub repository and the image it produces on Docker Hub. GitHub also runs its own image registry, ghcr.io, which is why many images now come from GitHub directly and never touch the Docker Hub pull limit.

Which pieces do you need on the server?

Docker Engine and the Compose plugin, both free. Compose is the file format most self-hosted projects publish, and the Docker Compose basics guide covers the compose.yaml structure. The standalone docker-compose binary, version 1, written in Python, is end of life. The docker compose plugin, version 2, replaced it, and whether Docker Compose is deprecated explains that split. Everything beyond that, such as a web UI or a private registry, is optional and also available free.

FAQ

Is Docker free for commercial use?

Docker Engine is free for commercial use of any size. It is Apache 2.0 open source, and no user count or company size applies, so a business may run it on as many servers as it likes. Docker Desktop is free for commercial use only in a company with fewer than 250 employees and less than $10 million in annual revenue, and both conditions must hold. Above that line each Desktop user needs a Pro, Team or Business subscription. Government bodies need a paid subscription at any size. These are the terms as read on 19 September 2026.

Do I need Docker Desktop on a VPS?

No. Docker Desktop exists to give macOS and Windows a Linux virtual machine, and a Linux VPS already has the kernel that containers need. Install Docker Engine with apt or dnf and you have everything Desktop would have given you, without a licence. There is no headless Desktop, and the Linux build needs a graphical session and KVM, neither of which a VPS provides.

Is Docker Hub free?

Yes, for a Personal account: unlimited public repositories and one private repository, plus 200 pulls per six hours once you run docker login. Without logging in, the limit is 100 pulls per six hours per IPv4 address. Pro, Team and Business accounts have unlimited pulls. These numbers are as read on 19 September 2026 and have changed before, so confirm them on the Docker Hub usage page.

What is the difference between docker.io and docker-ce?

They are the same engine from two packagers. docker.io is Ubuntu's build from the universe repository, updated on Ubuntu's schedule and usually a few releases behind. docker-ce is Docker's own build from download.docker.com, which follows upstream releases within days. Both are free and both are Apache 2.0. Install one or the other, not both, because they ship the same binaries.

Does Kubernetes still run Docker images?

Yes. Removing dockershim in Kubernetes 1.24 changed how the kubelet talks to the container runtime; it did not change the image format. Images from docker build are OCI images, and containerd, which Kubernetes now uses directly, is the same runtime Docker Engine uses underneath. Nothing built with Docker needs to be rebuilt.

#docker#licensing#docker-desktop#docker-hub#podman#self-hosting