Development & infrastructureDocker, Inc. and the Moby Project

Decision matrix

Docker runtime decision matrix
Overview

Verdict: learn Docker before you self-host anything. Most open-source AI tools ship as a Docker image, and one command starts them the same way on a laptop or a server. Docker Engine is free; Docker Desktop is free for companies under 250 staff and $10 million revenue. Your data lives in volumes, so back those up.

Other good fits
  • Running a small set of services (an app plus its database) on one server with a single Compose file you can keep in Git.
  • Giving a colleague the exact same setup you have, by sharing one Compose file instead of an install guide.
Pros
Read pros

Docker runs software from a container image: a packaged copy of an application with everything it needs. You don't install the tool's dependencies on your computer. You pull the image and start it. The same image behaves the same on your laptop and on a server.

Docker has two parts that matter to you. Docker Engine (open source, Apache 2.0, currently version 29.8) runs containers on Linux. Docker Desktop is Docker Inc.'s app for Windows and macOS; it bundles the Engine in a small Linux virtual machine and has its own licence. Docker Compose starts several containers together from one file.

The team behind this curriculum runs this site and its other services as Docker containers on its own servers. It's the default way open-source tools get shipped, which is why T11-L03 teaches it before any self-hosting.

Pick it when:

  • A tool's install page says "run with Docker", as it does for Open WebUI, n8n, LiteLLM and many others.
  • You want to try something and throw it away cleanly afterwards.
  • You need an app and its database running together on one server, and you want the whole setup written down in one file.
  • A colleague should get exactly your setup without a long install guide.
Cons
Read cons
  • Data loss is one command away. Anything written inside a container without a volume disappears when the container is removed. docker compose down -v deletes the volumes too. Back up volumes before upgrades.
  • Access to Docker is admin access. Whoever can run docker commands on a machine effectively controls that machine. Don't add people to the docker group casually, and never expose the Docker socket to a web app you don't trust.
  • Published ports can bypass your firewall on Linux servers. Bind to 127.0.0.1 and put a reverse proxy such as Caddy in front, as T12-L04 shows.
  • Windows and macOS add a layer. Desktop runs a virtual machine, which costs memory and makes GPU access and file sharing slower than on Linux.
  • An image is only as trustworthy as its publisher. Prefer official images and pin a version tag rather than latest for anything you depend on.

Pick something else when:

  • You only want a local model on your laptop: LM Studio or Ollama install as normal apps and need no containers.
  • Your IT department won't allow a root daemon, or you'd need paid Desktop seats: Podman runs the same images without a daemon and without a subscription.
  • You'd rather click than type once services are running: keep Docker underneath and add Dockge or Dokploy on top.

Avoid if

  • Your company has more than 250 staff or $10 million revenue and wants Docker Desktop, but won't pay for a subscription. Use Docker Engine on Linux or Podman.
Requirements

Install and start Docker Engine or an eligible Docker Desktop installation. Confirm the active Docker context, registry access and permission to use the daemon; daemon or socket access is privileged.

First run

Documentation-based suggestion — not run here.

Read first run

Run a chat interface for a local model in a container, keep its data in a volume, then remove the container and prove the data survived. Allow 30–45 minutes. You need Docker Desktop (Windows/macOS) or Docker Engine (Linux) and a running Ollama.

  1. Save this as compose.yaml in an empty folder:

    services:
      webui:
        image: ghcr.io/open-webui/open-webui:main
        ports:
          - "127.0.0.1:3000:8080"
        volumes:
          - webui-data:/app/backend/data
        extra_hosts:
          - "host.docker.internal:host-gateway"
    volumes:
      webui-data:
    
  2. In that folder, run docker compose up -d. Open http://localhost:3000, create the first account and ask the model one question.

  3. Run docker compose down. The container is gone. Run docker compose up -d again.

  4. Success check: your account and the chat are still there, because they live in the webui-data volume, not in the container. docker volume ls lists it.

Two habits from this project carry over to everything else. The port is bound to 127.0.0.1, so only your computer can reach it. And the volume is the thing you back up; the container can always be recreated.

Integration

Containers can connect to networks and use mounts. A bind mount shares host files; a volume preserves data beyond an ephemeral container layer. Treat both as explicit access decisions.

Check the result

Expect the shell to print the message and exit; --rm removes the stopped container while the pulled image remains cached.

Links & evidence
Documentation-based · not hands-on · Sep 23, 2026

Checked against Docker's pricing page, the Docker Desktop licence terms, Docker Hub usage limits, the Engine and Compose docs, and the moby and compose GitHub releases on 23 September 2026. The team behind this curriculum runs its own services as Docker containers; we did not run the specific commands below for this review.

  • Docker pricing · Sep 23, 2026 — Personal $0; Pro $9 (annual) or $11 (monthly); Team $15 or $16; Business $24 per user per month.
  • Docker Desktop licence agreement · Sep 23, 2026 — Desktop is free for businesses under 250 employees and under $10 million annual revenue, personal use, education and non-commercial open source; Engine terms unchanged.
  • Docker Hub usage and limits · Sep 23, 2026 — Pull limits: 100 per 6 hours unauthenticated, 200 per 6 hours for a free Personal account.
  • Moby (Docker Engine) releases · Sep 23, 2026 — Docker Engine 29.8.1, released 15 September 2026.
  • Volumes · Sep 23, 2026 — Data written inside a container disappears with it; volumes keep it.
  • Docker Compose · Sep 23, 2026 — Define and run multi-container applications from one YAML file.
Further review notes & alternatives

Costs and operating effort

Prices checked 23 September 2026: Docker Engine and Compose are free software (Apache 2.0); you pay for the machine. Docker Desktop and Docker Hub come with Docker's subscriptions:

PlanAnnual billingMonthly billingWho needs it
Personal$0$0Individuals, education, non-commercial open source, and businesses under 250 employees and under $10 million revenue
Pro$9 per user/month$11 per user/monthOne professional user
Team$15 per user/month$16 per user/monthUp to 100 users
Business$24 per user/month$24 per user/monthUnlimited users, central admin controls

For a lab or small company, Docker Desktop is usually free. A larger organisation needs a paid seat for everyone who uses Desktop at work. Docker Engine on a Linux server needs no subscription at any size.

The machine: any recent laptop runs small containers. Docker Desktop reserves memory for its virtual machine, so 16 GB RAM makes daily use comfortable. A small server with 2–4 GB RAM runs a handful of web services. Local AI models need far more; see T11-L04.

Running effort is real. Someone has to update images (pull, recreate, check), back up volumes, and read the logs when a container keeps restarting. Free Docker Hub accounts have pull limits (200 pulls per 6 hours), which a single user rarely hits.

Alternatives and trade-offs

  • Podman wins when you want rootless containers by default or a fully open-source desktop app. Most Docker commands and Compose files work, but some tutorials assume Docker and need small changes.
  • Dockge wins when you run a few Compose stacks on one server and want a simple web page to start, stop and edit them. It uses Docker; it doesn't replace it.
  • Dokploy wins when you deploy your own apps repeatedly and want Git-based deploys, domains and certificates handled for you. It also runs on Docker, with more moving parts to look after.

Learn more

Catalogue facts

Build, run, and share OCI container workloads from the command line. Choose it when applications need repeatable packaged environments. Compose and registries support multi-container development and image distribution.

Docker, Inc. and the Moby Project · free-tier · desktop · self-host

  • containers
  • image builds
  • registries
  • Compose
  • runtime isolation
  • deploy
  • automate
  • build-app

Browse all tools