Skip to content

offload: add initial docs #22910

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jul 10, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions _vale/config/vocabularies/Docker/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ Grafana
Gravatar
gRPC
HyperKit
inferencing
inotify
Intel
Intune
Expand Down
4 changes: 4 additions & 0 deletions content/manuals/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ params:
description: Secure, minimal images for trusted software delivery.
icon: /icons/dhi.svg
link: /dhi/
- title: Docker Offload
description: Build and run containers in the cloud.
icon: cloud
link: /offload/
- title: Build Cloud
description: Build your images faster in the cloud.
icon: /icons/logo-build-cloud.svg
Expand Down
Binary file removed content/manuals/desktop/setup/images/cloud-mode.png
Binary file not shown.
81 changes: 14 additions & 67 deletions content/manuals/desktop/setup/vm-vdi.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,82 +16,29 @@

- If your environment supports nested virtualization, you can run Docker Desktop
with its default local Linux VM.
- If nested virtualization is not supported, Docker recommends using Docker
Cloud. To join the beta, contact Docker at `docker-cloud@docker.com`.
- If nested virtualization is not supported, Docker recommends using [Docker
Offload](/offload/).

## Use Docker Cloud
## Use Docker Offload

Check warning on line 22 in content/manuals/desktop/setup/vm-vdi.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.HeadingSentenceCase] Use sentence case for headings: 'Use Docker Offload'. Raw Output: {"message": "[Docker.HeadingSentenceCase] Use sentence case for headings: 'Use Docker Offload'.", "location": {"path": "content/manuals/desktop/setup/vm-vdi.md", "range": {"start": {"line": 22, "column": 4}}}, "severity": "WARNING"}

{{< summary-bar feature_name="Docker Cloud" >}}
Docker Offload lets you offload container workloads to a high-performance, fully
hosted cloud environment, enabling a seamless hybrid experience.

Docker Cloud lets you offload container workloads to a high-performance,
fully hosted cloud environment, enabling a seamless hybrid experience. It
includes an insights dashboard that offers performance metrics and environment
management to help optimize your development workflow.
Docker Offload is useful in virtual desktop environments where nested
virtualization isn't supported. In these environments, Docker Desktop defaults
to using Docker Offload to ensure you can still build and run containers without
relying on local virtualization.

This mode is useful in virtual desktop environments where nested virtualization
isn't supported. In these environments, Docker Desktop defaults to using
cloud mode to ensure you can still build and run containers without relying on
local virtualization.

Docker Cloud decouples the Docker Desktop client from the Docker Engine,
Docker Offload decouples the Docker Desktop client from the Docker Engine,
allowing the Docker CLI and Docker Desktop Dashboard to interact with
cloud-based resources as if they were local. When you run a container, Docker
provisions a secure, isolated, and ephemeral cloud environment connected to
Docker Desktop via an SSH tunnel. Despite running remotely, features like bind
mounts and port forwarding continue to work seamlessly, providing a local-like
experience. To use Docker Cloud:

1. Contact Docker at `docker-cloud@docker.com` to activate the feature for your
account.
2. [Install Docker Desktop](/manuals/desktop/setup/install/windows-install.md#install-docker-desktop-on-windows)
version 4.42 or later on your Windows virtual desktop.
3. [Start Docker Desktop](/manuals/desktop/setup/install/windows-install.md#start-docker-desktop).
4. Sign in to Docker Desktop.

After you sign in, Docker Cloud is enabled by default and cannot be
disabled. When enabled, Docker Desktop's Dashboard header appears purple and the
cloud-mode toggle is a cloud icon ({{< inline-image
src="./images/cloud-mode.png" alt="Cloud mode icon" >}}).

In this mode, Docker Desktop mirrors your cloud environment, providing
a seamless view of your containers and resources running on Docker Cloud. You
can verify that Docker Cloud is working by running a simple container. In a
terminal on your virtual desktop, run the following command:

```console
$ docker run hello-world
```

In the terminal, you will see `Hello from Docker!` if everything is working
correctly.

### View insights and manage Docker Cloud

For insights and management, use the [Docker Cloud
Dashboard](https://app.docker.com/cloud). It provides visibility into your
builds, runs, and cloud resource usage. Key features include:

- Overview: Monitor cloud usage, build cache, and top repositories built.
- Build history: Review past builds with filtering and sorting options.
- Run history: Track container runs and sort by various options.
- Integrations: Learn how to set up cloud builders and runners for your CI
pipeline.
- Settings: Manage cloud builders, usage, and account settings.

Access the Docker Cloud Dashboard at https://app.docker.com/cloud.

### Limitations

The following limitations apply when using Docker Cloud:

- Persistence: Containers are launched in a cloud engine that remains available
as long as you interact with and consume the containers' output. After closing
Docker Desktop, or about 30 minutes of inactivity, the engine is shut down and
becomes inaccessible, along with any data stored in it, including images,
containers, and volumes. A new engine is provisioned for any new workloads.
- Usage and billing: During beta, no charges are incurred for using Docker Cloud
resources. Docker enforces a usage cap and reserves the right to disable
Docker Cloud access at any time.
experience. To use Docker Offload:

To get started using Docker Offload, see the [Docker Offload
quickstart](/offload/quickstart/).

## Virtual desktop support when using nested virtualization

Expand Down
57 changes: 57 additions & 0 deletions content/manuals/offload/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
title: Docker Offload
weight: 15
description: Find documentation on Docker Offload to help you build and run your container images faster, both locally and in CI
keywords: build, cloud, cloud build, remote builder
params:
sidebar:
group: Products
badge:
color: blue
text: Beta

grid:

- title: Quickstart
description: Get up and running with Docker Offload in just a few steps.
icon: rocket_launch
link: /offload/quickstart/

- title: About
description: Learn about Docker Offload and how it works.
icon: info
link: /offload/about/

- title: Configure
description: Set up and customize your cloud build environments.
icon: tune
link: /offload/configuration/

- title: Usage
description: Learn about Docker Offload usage and how to monitor your cloud resources.
icon: monitor_heart
link: /offload/usage/

- title: Optimize
description: Improve performance, caching, and cost efficiency in Docker Offload.
icon: speed
link: /offload/optimize/

- title: Troubleshoot
description: Learn how to troubleshoot issues with Docker Offload.
icon: bug_report
link: /offload/troubleshoot/

---

{{< summary-bar feature_name="Docker Offload" >}}

Docker Offload is a fully managed service that lets you offload building and
running containers to the cloud using the Docker tools you already know. It
provides cloud infrastructure for fast, consistent builds and compute-heavy
workloads like running LLMs or machine learning pipelines.

In the following topics, learn about Docker Offload, how to set it up, use it
for your workflows, and troubleshoot common issues.

{{< grid >}}
129 changes: 129 additions & 0 deletions content/manuals/offload/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
---
title: About Docker Offload
linktitle: About
weight: 15
description: Learn about Docker Offload, its features, and how it works.
keywords: cloud, build, remote builder
---

Docker Offload is a fully managed service for building and running containers in
the cloud using the Docker tools you already know, including Docker Desktop, the
Docker CLI, and Docker Compose. It extends your local development workflow into a
scalable, cloud-powered environment, so you can offload compute-heavy tasks,
accelerate builds, and securely manage container workloads across the software
lifecycle.

Docker Offload also supports GPU-accelerated instances, allowing you to
containerize and run compute-intensive workloads such as Docker Model Runner and
other machine learning or data processing tasks that benefit from GPU.

## Key features

Docker Offload includes the following capabilities to support modern container
workflows:

- Cloud-based builds: Execute builds on remote, fully managed BuildKit instances
with native support for multi-platform output.
- GPU acceleration: Use NVIDIA L4 GPU-backed environments for machine learning,
media processing, and other compute-intensive workloads.
- Ephemeral cloud runners: Automatically provision and tear down cloud
environments for each container session.
- Shared build cache: Speed up build times across machines and teammates with a
smart, shared cache layer.
- Hybrid workflows: Seamlessly transition between local and remote execution
using Docker Desktop or CLI.
- Secure communication: Use encrypted tunnels between Docker Desktop and cloud
environments with support for secure secrets and image pulling.
- Port forwarding and bind mounts: Retain a local development experience even
when running containers in the cloud.
- VDI-friendly: Use Docker Offload in virtual desktop environments or systems that
don't support nested virtualization.

## Why use Docker Offload?

Docker Offload is designed to support modern development teams working across
local and cloud environments. It helps you:

- Offload heavy builds and runs to fast, scalable infrastructure
- Accelerate feedback loops in development and testing
- Run containers that require more resources than your local setup can provide
- Build and run AI apps with instant access to GPU-powered environments
- Use Docker Compose to manage complex, multi-service apps that need cloud
resources
- Maintain consistent environments without managing custom infrastructure
- Develop efficiently in restricted or low-powered environments like VDIs

Docker Offload is ideal for high-velocity development workflows
that need the flexibility of the cloud without sacrificing the simplicity of
local tools.

## How Docker Offload works

Docker Offload replaces the need to build or run containers locally by connecting
Docker Desktop to secure, dedicated cloud resources.

### Building with Docker Offload

When you use Docker Offload for builds, the `docker buildx build` command sends
the build request to a remote BuildKit instance in the cloud, instead of
executing it locally. Your workflow stays the same, only the execution
environment changes.

The build runs on infrastructure provisioned and managed by Docker:

- Each cloud builder is an isolated Amazon EC2 instance with its own EBS volume
- Remote builders use a shared cache to speed up builds across machines and
teammates
- Builds support native multi-platform output (for example, `linux/amd64`,
`linux/arm64`)
- Build results are encrypted in transit and sent to your specified destination
(such as a registry or local image store)

Docker Offload manages the lifecycle of builders automatically. There's no need to
provision or maintain infrastructure.

> [!NOTE]
>
> Docker Offload builders are currently hosted in the United States East region. Users in
> other regions may experience increased latency.

### Running containers with Docker Offload

When you use Docker Offload to run containers, a Docker Desktop creates a secure
SSH tunnel to a Docker daemon running in the cloud. Your containers are started
and managed entirely in that remote environment.

Here's what happens:

1. Docker Desktop connects to the cloud and triggers container creation.
2. Docker Offload pulls the required images and starts containers in the cloud.
3. The connection stays open while the containers run.
4. When the containers stop running, the environment shuts down and is cleaned
up automatically.

This setup avoids the overhead of running containers locally and enables fast,
reliable containers even on low-powered machines, including machines that do not
support nested virtualization. This makes Docker Offload ideal for developers
using environments such as virtual desktops, cloud-hosted development machines,
or older hardware.

Docker Offload also supports GPU-accelerated workloads. Containers that require
GPU access can run on cloud instances provisioned with NVIDIA L4 GPUs for
efficient AI inferencing, media processing, and general-purpose GPU
acceleration. This enables compute-heavy workflows such as model evaluation,
image processing, and hardware-accelerated CI tests to run seamlessly in the
cloud.

Despite running remotely, features like bind mounts and port forwarding continue
to work seamlessly, providing a local-like experience from within Docker Desktop
and the CLI.

Docker Offload provisions an ephemeral cloud environment for each session. The
environment remains active while you are interacting with Docker Desktop or
actively using containers. If no activity is detected for about 30 minutes, the
session shuts down automatically. This includes any containers, images, or
volumes in that environment, which are deleted when the session ends.

## What's next

Get hands-on with Docker Offload by following the [Docker Offload quickstart](/offload/quickstart/).
Loading
Loading