Three ways to run a container, three different meters
A container is the same everywhere — the same image, the same runtime, the same process. What changes is who operates the machine it runs on, priced three different ways. Docker charges per developer seat. Kubernetes, through Amazon EKS, charges per cluster per hour plus the compute underneath. Amazon ECS with Fargate charges per vCPU and per gigabyte per second, with no server to manage at all. A team that picks on habit instead of on the meter pays for the wrong thing. This guide prices all three from the vendors' own pricing pages.
> [!KEY TAKEAWAY]
> Docker, Kubernetes, and ECS are not three prices for the same thing. Docker sells developer seats, EKS sells a managed control plane by the hour, and Fargate sells raw vCPU-seconds. Compare them on the same workload, not the same line item, or the comparison is meaningless.
Why it matters: the meter decides the bill, not the technology
A container platform has two costs that most comparisons merge into one number: the cost of the platform itself and the cost of the compute under it. Docker's subscription buys the developer tooling — Docker Desktop, Hub, Scout, Build Cloud — and no compute at all; the containers still run on a laptop, a VPS, or someone else's cloud, a separate bill. EKS charges $0.10 per cluster per hour for the control plane, then separately for the EC2 instances or Fargate tasks that run the workloads. Fargate charges only for the vCPU and memory the task requests, from image pull to termination, rounded up to the nearest second. A team that compares Docker's $9 per user against Fargate's $0.04048 per vCPU-hour is comparing a seat to a second.
Docker: the per-seat subscription
Docker sells four subscriptions, priced per user per month, from its own pricing page. Personal is $0. Pro is $9 per user per month billed annually, or $11 billed monthly. Team is $15 annually, or $16 monthly. Business is $24. Personal includes one private Hub repository and a capped Hub pull rate; Pro, Team, and Business all carry an unlimited Hub pull rate. The paid tiers add the features that decide the upgrade: Pro adds unlimited public repositories and 5,000 Hub image pulls per day, Team adds organization management and 2-business-day support, Business adds SSO, SCIM, audit logs, and SOC 2 Type 2 and ISO 27001 attestations. Docker's pricing page is client-rendered, so the figures below are read from the page's own pricing table text, not from a rendered screenshot.
| Plan | Price per user per month | 5 users per month | 25 users per month | 100 users per month | Authority |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Personal | $0 | $0 | $0 | $0 | Docker pricing |
| Pro | $9 annual / $11 monthly | $45 / $55 | $225 / $275 | $900 / $1,100 | Docker pricing |
| Team | $15 annual / $16 monthly | $75 / $80 | $375 / $400 | $1,500 / $1,600 | Docker pricing |
| Business | $24 | $120 | $600 | $2,400 | Docker pricing |
The annual-billing discount is the first saving to claim: a 25-person team on Pro pays $225 a month annually against $275 monthly — $600 a year saved. A 100-person team on Team pays $1,500 annually against $1,600 monthly — $1,200 a year. The second saving is the tier audit: a team that buys Business for SSO and never turns it on pays $24 per user for Pro's $9 feature set.
$
\text{Docker annual cost} = \text{users} \times \text{price per user per month} \times 12
$
A 25-person team on Team, billed annually: 25 × $15 × 12 = $4,500 a year. The same team on Business: 25 × $24 × 12 = $7,200 a year. The $2,700 gap buys SSO, SCIM, and audit logs — worth it for a regulated team, wasted on a team that authenticates through GitHub and has no auditor.
Kubernetes on EKS: the control plane by the hour
Amazon EKS charges a per-cluster per-hour fee based on the cluster's Kubernetes version support tier. A version under standard support for its first 14 months costs $0.10 per cluster per hour. Once the version passes the end of standard support, it enters extended support for the next 12 months at $0.60 per cluster per hour — standard support plus $0.50. The fee is per cluster, not per node, so five clusters cost five times the fee. The worker nodes are a separate bill: EC2 instances, EBS volumes, and public IPv4 addresses, plus cross-AZ traffic from nodes to the control plane.
!Amazon EKS cluster pricing: $0.10 per cluster per hour standard, $0.60 extended
Amazon EKS pricing page: standard support $0.10 per cluster per hour, extended support $0.60, and Provisioned Control Plane tiers from $1.65 to $13.90 per cluster per hour.
The monthly control-plane cost is the hourly fee times 730 hours, the standard month used across AWS pricing:
$
\text{EKS monthly cost} = \text{hourly fee} \times 730
$
One cluster on standard support: $0.10 × 730 = $73.00 a month, $876 a year. The same cluster on extended support: $0.60 × 730 = $438.00 a month, $5,256 a year — six times the standard fee, which is why staying on a supported Kubernetes version is a pricing decision, not a hygiene chore. Five clusters on standard support cost $365 a month in control-plane fees alone. EKS also sells a Provisioned Control Plane for demanding workloads: XL at $1.65 per cluster per hour, 2XL at $3.40, 4XL at $6.90, and 8XL at $13.90 — the 8XL tier costs $10,147 a month, charged in addition to the standard cluster fee.
ECS with Fargate: the vCPU-second meter
Fargate has no cluster fee and no control-plane fee. It charges for the vCPU, memory, and storage a task requests, from the start of the image download until the task terminates, rounded up to the nearest second, with a one-minute minimum. The per-second rates on the Fargate pricing page for Linux on x86 in US East (N. Virginia) are $0.000011244 per vCPU-second and $0.000001235 per GB-second. The page's own rate table is a client-side component that returns no figures to a plain fetch, so the hourly rates below are derived from those per-second rates by multiplying by 3,600 seconds — the derivation is shown so the reader can check it.
$
\text{Fargate vCPU rate} = \$0.000011244 \times 3{,}600 = \$0.04048\ \text{per vCPU-hour}
$
$
\text{Fargate memory rate} = \$0.000001235 \times 3{,}600 = \$0.004446\ \text{per GB-hour}
$
A task requesting 1 vCPU and 2 GB costs $0.04048 + (2 × $0.004446) = $0.049372 per hour. Ten such tasks around the clock for a month:
$
\text{Monthly Fargate cost} = 10 \times \$0.049372 \times 730 = \$360.42
$
Fargate Spot runs the same tasks on spare capacity at up to a 70 percent discount, cutting that profile to $108.13 a month — but Spot tasks can be interrupted, so it fits batch jobs and stateless workers, not a payment API. Compute Savings Plans offer up to 50 percent off in exchange for a one- or three-year commitment to a dollar-per-hour usage level, cutting the same profile to $180.21 a month. The pricing page's own worked example confirms the arithmetic at small scale: five tasks running 10 minutes a day for 30 days, each using 1 vCPU, 2 GB, and 30 GB of ephemeral storage, cost $1.01 of CPU, $0.22 of memory, and $0.03 of storage — $1.26 in total.
!AWS Fargate worked example: per-second rates and the $1.26 monthly total
The Fargate pricing page works its own example: 5 tasks at 1 vCPU and 2 GB for 10 minutes a day cost $1.01 CPU plus $0.22 memory plus $0.03 storage, $1.26 for the month.
Self-managed Kubernetes: the zero-fee control plane with a labor bill
Running Kubernetes yourself — kubeadm on EC2, or k3s on a VPS — removes the $0.10 per cluster-hour fee entirely. The control plane costs $0. The nodes still cost whatever the underlying compute costs, and the cluster still needs someone to upgrade it, patch etcd, rotate certificates, and answer the 3 a.m. page when the API server stops responding. That labor is the real price, and it is the line most self-managed comparisons leave out. As an illustrative input, not a benchmark — four hours a month of platform engineering at $75 an hour is $300 a month, $3,600 a year, against EKS's $876 a year for one cluster. The break-even is simple:
$
\text{Break-even ops hours} = \frac{\$73.00}{\$75} \approx 0.97\ \text{hours per month}
$
If the team spends more than one hour a month operating its own control plane, EKS is cheaper than self-managing. If the team spends less — a single-node k3s box that is rebuilt, not repaired — self-managed wins. Our self-hosting guide prices the VPS side of the same decision, including the $5 Hetzner tier that makes a single-node cluster nearly free in cash terms.
Decision table: the same workload through three meters
The table below prices one reference workload — ten services, each 1 vCPU and 2 GB, running around the clock — plus the platform fee each option adds. The Docker row assumes the team already pays for compute elsewhere, so it shows the subscription only; the EKS and Fargate rows include the compute the platform itself bills.
| Attribute | Docker subscription | Kubernetes on EKS | ECS with Fargate | Authority |
| :--- | :--- | :--- | :--- | :--- |
| Platform fee | $0–$2,400/mo by tier and seats | $73.00/mo per cluster, standard support | $0 | Docker; EKS pricing pages |
| Compute for 10 services | Billed separately, not by Docker | EC2 or Fargate, billed separately | $360.42/mo at 1 vCPU / 2 GB each | Fargate pricing page |
| Total, 10-service profile | $45–$120/mo for 5 users (subscription only) | $433.42/mo with Fargate compute | $360.42/mo | Derived from vendor rates above |
| Discount lever | Annual billing saves 9–18 percent | None on the cluster fee | Spot up to 70 percent; Savings Plans up to 50 percent | Vendor pricing |
| Operational load | Desktop and Hub only | Control plane managed; nodes are yours | None — no servers to manage | EKS and Fargate docs |
| Failure mode | Seat sprawl: paying for departed users | Version drift into $0.60 extended support | Idle tasks billed per second, 24 hours a day | Vendor pricing |
The comparison that matters is the middle column against the right: EKS with Fargate compute costs $433.42 a month for the reference workload, Fargate alone $360.42. The $73 difference is exactly the EKS cluster fee — the price of the Kubernetes API, its scheduling, and its ecosystem.
Who should NOT use each option
Docker Business should not be bought by a team with no compliance requirement. SSO, SCIM, and audit logs are worth $24 per user per month to a regulated company and $0 to a team that logs in through GitHub and has never been audited. Kubernetes should not be adopted for a single service. A lone API with a database does not need scheduling, service discovery, and a control plane; it needs a container runtime and a restart policy, and Fargate or a single Docker host gives it both for less. Fargate should not run a workload idle most of the day at full reservation: the meter charges for requested vCPU and memory whether the task is busy or waiting, so a service handling ten requests an hour on a 1-vCPU reservation pays for 730 hours of a CPU it barely uses. And self-managed Kubernetes should not be chosen by a team with no one willing to own the control plane. The $0 fee is real, and so is the 3 a.m. page.
> [!WARNING]
> Never let a Kubernetes version drift into extended support unnoticed. The fee jumps from $0.10 to $0.60 per cluster per hour — $73 to $438 a month per cluster — the day the version passes its 14-month standard support window. Put the version support date on the same calendar as the renewal, and treat the upgrade as a pricing deadline, not a maintenance chore.
Execution checklist
For the frontend hosting that usually sits in front of these containers, see our Vercel vs Netlify vs Cloudflare Pages guide, and for the delivery layer, see our CDN pricing guide. Before committing, run the reference workload through the pricing calculator with the platform fee and the compute on separate lines — a single blended number hides exactly the trade-off this guide exists to expose.
> [!TIP]
> Right-size the Fargate reservation first: the meter charges requested vCPU and memory, not used, so a task requesting 1 vCPU and using 0.2 pays five times what it needs to. Set the reservation to the 95th percentile of one week of real use.
> [!FOUNDER]
> "Every team I have watched pick a container platform picked it for the logo and paid for the meter. Docker is a seat tax, EKS is a clock tax, Fargate is a stopwatch. Write the workload down, run it through all three meters, and let the arithmetic pick — the logo never pays the invoice."
> — Enow A. Jovial, Founder & Chief Executive Officer
The Terraform vs Pulumi vs AWS CDK pricing guide prices the control planes behind these containers.