{"eid":"docker","name":"Docker Cloud","domain":"docker.com","resolved_by":"domain","topics":["compute","storage"],"n_records":2,"best_vorder":0,"review":null,"aliases":["Docker Cloud","Docker Cloud Sandboxes","Docker Hub (free Personal plan, public repositories)","docker.com"],"records":[{"rid":"storage/docker-hub","card":{"rid":"storage/docker-hub","eid":"docker","topic":"storage","slug":"docker-hub","provider":"Docker Hub (free Personal plan, public repositories)","url":"https://hub.docker.com","domain":"docker.com","category":"registry","tier":null,"verdict":"qualifies","vorder":0,"grp":"usable","confidence":"reported","binding":"per-ip-shaping","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"oci","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":5,"usd_month":null,"usd_per_tb_month":null,"summary":"Unlimited public repositories on the free Personal plan; NO documented storage cap on public repositories. Docker's own limits table lists only pull-rate and...","duplicate_of":null,"n_unknown":4},"record":{"topic":"storage","slug":"docker-hub","provider":"Docker Hub (free Personal plan, public repositories)","url":"https://hub.docker.com","category":"registry","free_tier":{"stated":"Unlimited public repositories on the free Personal plan; NO documented storage cap on public repositories. Docker's own limits table lists only pull-rate and repository counts, with no storage row. Docker's Feb 2025 policy post says storage-based billing is 'indefinitely delayed' with a promised six-month notice.","unit":"unlimited","metered_on":"stored-bytes","source_url":"https://docs.docker.com/docker-hub/usage/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://docs.docker.com/docker-hub/usage/","notes":"not stated"},"retention":{"stated":"Pull count 100/6h anonymous or 200/6h authenticated per IP — that is the binding constraint for a 500GB-1TiB/day fetch workload (needs few, large blobs rather than many small ones)","source_url":"https://docs.docker.com/docker-hub/usage/","notes":"not stated"},"egress":{"terms":"Free and unmetered per-GB; the gate is a pull COUNT, not bytes: 'Unauthenticated users: 100 per IPv4 address or IPv6 /64 subnet' and 'Personal (authenticated): 200' per 6 hours. Blobs are served by 307 redirect to a CDN, so one pull can be a multi-GB blob.","metered":false},"interface":["oci"],"interface_detail":"oci","tooling":"oras push / docker push; purpose-built wrapper: github.com/Androsh7/layerstash (chunks >5GB files into ~5GB layers, uploads to Docker Hub or GHCR; author reports 1.8TB personally stored), github.com/xausky/DockerRegisterCloud (654 stars, registry-as-netdisk client with Flutter GUI + direct-download server).","chaining":"Unlimited public repos per account, and the free account count itself is unlimited. Layer count per repo is not capped, so a single repo holds arbitrarily many blobs; layerstash's <base-tag>-<chunk_n> scheme makes one repo a striped volume of unlimited size.","limits":[{"kind":"per-ip-shaping","value":"1TiB/day","source":"https://docs.docker.com/docker-hub/usage/"}],"limits_note":"Pull count 100/6h anonymous or 200/6h authenticated per IP — that is the binding constraint for a 500GB-1TiB/day fetch workload (needs few, large blobs rather than many small ones). No published per-layer size cap, but the Docker distribution S3 driver historically broke above 10GB per layer (distribution/distribution#2814), so shard at ~5GB. The excess-use rate limit returns plain 429 in the order of thousands of req/min per IP.","identity_cost":{"kind":"anonymous","detail":"derived from the record's prose, not from an identity field, and no signup was executed: repo a striped volume of unlimited size. Pull count 100/6h anonymous or 200/6h authenticated per IP — that is the binding constraint for a 500GB-1TiB/day fetch workload (needs few, large b","country":null},"reliability_note":"Storage is unpriced today but Docker reserves the right to add charges and has flip-flopped before (announced Mar 2025, cancelled Apr 2025); the 100-pull/6h IP limit will throttle any fetch fan-out from one host.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://docs.docker.com/docker-hub/usage/","date":"2026-10-21","proved":"read live: table has columns Pull rate limit / public repos / private repos only; Personal = Unlimited public repos, 200 pulls/6h; no storage row anywhere on the page"},{"url":"https://www.docker.com/blog/revisiting-docker-hub-policies-prioritizing-developer-experience/","date":"2026-10-21","proved":"read live: 'Storage Charges Delayed Indefinitely ... we have decided to indefinitely delay any storage charges', and 'We did not enforce the Docker Hub rate limit changes previously scheduled for April 1, 2025'"},{"url":"https://auth.docker.io/token?service=registry.docker.io&scope=repository:library/alpine:pull","date":"2026-10-21","proved":"probe: GET -> 200 (2698-char token); then GET registry-1.docker.io/v2/library/alpine/manifests/latest -> 200, 9218 bytes, anonymous, no account"},{"url":"https://registry-1.docker.io/v2/library/alpine/blobs/uploads/","date":"2026-10-21","proved":"probe: POST -> 401 (anonymous push correctly refused; write requires an account, read does not)"},{"url":"https://github.com/Androsh7/layerstash","date":"2026-10-21","proved":"read live: 'I have stored a total of 1.8TB in a public repository on Docker Hub androsh7/archive'"}],"verdict":"qualifies","verified_at":"2026-10-21T00:00:00.000Z","notes":"Unlimited public repositories on the free Personal plan; NO documented storage cap on public repositories. Docker's own limits table lists only pull-rate and repository counts, with no storage row. Docker's Feb 2025 policy post says storage-based billing is 'indefinitely delayed' with a promised six-month notice.","extras":{},"binding":"per-ip-shaping","binding_note":"one stream is shaped, and a user's throughput is the shaped rate times the number of streams"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[0].value","kind":"limit:per-ip-shaping","num":1.0,"unit":"TiB","per":"day","currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"]],"history":[],"drift":[]},{"rid":"compute/docker-cloud-sandboxes","card":{"rid":"compute/docker-cloud-sandboxes","eid":"docker","topic":"compute","slug":"docker-cloud-sandboxes","provider":"Docker Cloud Sandboxes","url":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/","domain":"docker.com","category":"container and VM sandbox","tier":null,"verdict":"paid-only","vorder":3,"grp":"paid","confidence":"documented","binding":"request-rate","identity_kind":"email","identity_basis":"defaulted","needs_card":null,"needs_phone":null,"needs_id":null,"needs_institution":null,"country":null,"crypto":null,"interfaces":null,"egress_metered":null,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-22T04:46:47.746Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-22","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"no free tier: compute bills per second from $0.07 an hour for 1 vCPU and 2 GiB, and a paused sandbox costs nothing; volumes and egress are free","duplicate_of":null,"n_unknown":17},"record":{"topic":"compute","slug":"docker-cloud-sandboxes","provider":"Docker Cloud Sandboxes","url":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/","category":"container and VM sandbox","free_tier":{"stated":"no free tier: compute bills per second from $0.07 an hour for 1 vCPU and 2 GiB, and a paused sandbox costs nothing; volumes and egress are free","unit":"none","metered_on":"none","source_url":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/","read_on":"2026-10-22"},"per_object_cap":{"stated":"not stated","bytes":null,"source_url":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/","notes":null},"retention":{"stated":"not stated","days":null,"source_url":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/","notes":"not stated"},"egress":{"terms":"not stated","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/"},"interface":["unknown"],"interface_detail":null,"tooling":"not stated","chaining":"not stated","limits":[{"kind":"request-rate","value":"$0.07 an hour for Micro at 1 vCPU and 2 GiB, up to $1.12 for XL at 16 vCPU and 32 GiB","source":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/"},{"kind":"retention-clamped","value":"a paused sandbox costs nothing; egress and volumes are not metered","source":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/"},{"kind":"per-object-cap","value":"the page states no disk cap per sandbox; it says hosting public images and Kits is free","source":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/"}],"limits_note":"not stated","identity_cost":{"kind":"email","detail":null,"country":null},"reliability_note":"no reliability event recorded","confidence":"documented","confidence_note":"the announcement page was read on 2026-10-22 and states the per-second metering, the paused-sandbox behaviour and the size ladder. The USD 25 credit the record carried is not on it, so the verdict moves to paid-only on what the page does say","evidence":[{"url":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/","date":"2026-10-02","proved":null},{"url":"https://www.docker.com/blog/introducing-cloud-sandboxes-start-on-your-laptop-finish-in-the-cloud/","date":"2026-10-22","proved":"'Cloud Sandboxes are pay-as-you-go. We meter compute by the second, and nothing else. A paused sandbox costs nothing. Volumes, egress, and hosting public images and Kits are free.' with sizes from Micro at $0.07 an hour (1 vCPU, 2 GiB) to XL at $1.12 (16 vCPU, 32 GiB), quoted"}],"verdict":"paid-only","verified_at":"2026-10-22T04:46:47.746Z","price_per_tb_month":null,"notes":"","extras":{"talaria_m10h_usd":42.0,"talaria_m24h_usd":100.8,"nemo_m10h_usd":42.0,"keep_rate":1.0,"keep_rate_basis":null,"billing_model":"unclassified","shape":{"vcpu":2,"ram":4,"disk":null,"gpu_class":null,"gpu_count":null,"note":"Small is the default at 2 vCPU and 4 GiB for $0.14 an hour"},"session_cap":{"wall_clock_min":null,"idle_reap_s":null,"restart_required":false,"note":"a paused sandbox costs nothing, so stopping is a pause rather than a loss; the page describes running an agent for hours with the laptop closed"},"persistent_storage":null,"network_out":null,"price_note":null,"free_tier_kind":"none","granularity":{"min_billed_s":0,"rounding_s":null},"burst_x":1.0,"ps":{"gib":null,"price":"volumes are free","durability":"volume","on_stop":true,"on_destroy":false,"retention":"until deleted"},"net":{"out":true,"in":true,"ports":"published ports","static_ip":null,"ipv6":null,"allowance":"egress is free"}},"binding":"request-rate"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":2.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:request-rate","num":2.0,"unit":"GiB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[1].value","kind":"limit:retention-clamped","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.limits[2].value","kind":"limit:per-object-cap","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.chaining","not-stated"],["$.egress.metered","egress-unknown"],["$.egress.terms","not-stated"],["$.evidence[0].proved","process"],["$.extras.keep_rate_basis","process"],["$.extras.price_note","process"],["$.identity_cost.detail","defaulted"],["$.identity_cost.kind","identity-defaulted"],["$.interface","interface-unknown"],["$.interface_detail","withheld"],["$.limits_note","not-stated"],["$.per_object_cap.notes","process"],["$.per_object_cap.stated","not-stated"],["$.reliability_note","none-observed"],["$.retention.notes","not-extracted"],["$.retention.stated","not-stated"],["$.tooling","not-stated"]],"history":[],"drift":[]}]}