diff --git a/content/manuals/desktop/setup/vm-vdi.md b/content/manuals/desktop/setup/vm-vdi.md index 89459200f3a..75a18351a42 100644 --- a/content/manuals/desktop/setup/vm-vdi.md +++ b/content/manuals/desktop/setup/vm-vdi.md @@ -26,7 +26,7 @@ hosted cloud environment, enabling a seamless hybrid experience. 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 +to using Docker Offload to ensure you can still run containers without relying on local virtualization. Docker Offload decouples the Docker Desktop client from the Docker Engine, diff --git a/content/manuals/offload/_index.md b/content/manuals/offload/_index.md index cea38736559..487b0a1af1c 100644 --- a/content/manuals/offload/_index.md +++ b/content/manuals/offload/_index.md @@ -1,14 +1,11 @@ --- 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 +description: Find documentation on Docker Offload to help you run your container images faster +keywords: cloud, cloud run, offload params: sidebar: group: Products - badge: - color: blue - text: Beta grid: @@ -22,21 +19,16 @@ grid: icon: info link: /offload/about/ -- title: Configure - description: Set up and customize your cloud build environments. +- title: Configuration + description: Configure settings for Docker Offload. icon: tune link: /offload/configuration/ -- title: Usage +- title: Usage & billing 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 @@ -53,10 +45,10 @@ aliases: {{< 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. +Docker Offload is a fully managed service that lets you offload running +containers to the cloud using the Docker tools you already know. It provides +cloud infrastructure for 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. diff --git a/content/manuals/offload/about.md b/content/manuals/offload/about.md index 8f6c9a804a1..0edbd8915c9 100644 --- a/content/manuals/offload/about.md +++ b/content/manuals/offload/about.md @@ -3,15 +3,13 @@ title: About Docker Offload linktitle: About weight: 15 description: Learn about Docker Offload, its features, and how it works. -keywords: cloud, build, remote builder +keywords: cloud, run, offload --- -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 is a fully managed service for 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. Docker Offload also supports GPU-accelerated instances, allowing you to containerize and run compute-intensive workloads such as Docker Model Runner and @@ -22,13 +20,10 @@ other machine learning or data processing tasks that benefit from GPU. Docker Offload includes the following capabilities to support modern container workflows: -- Cloud-based builds: Execute builds on remote, fully managed BuildKit instances - 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 @@ -43,10 +38,9 @@ workflows: 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 +- 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 @@ -58,31 +52,8 @@ 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 -- 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. +Docker Offload replaces the need to run containers locally by connecting Docker +Desktop to secure, dedicated cloud resources. ### Running containers with Docker Offload diff --git a/content/manuals/offload/configuration.md b/content/manuals/offload/configuration.md index 0af088a11bf..f1256bb9dec 100644 --- a/content/manuals/offload/configuration.md +++ b/content/manuals/offload/configuration.md @@ -1,104 +1,47 @@ --- title: Configure Docker Offload -linktitle: Configure +linktitle: Configuration weight: 20 -description: Learn how to configure build settings for Docker Offload. -keywords: cloud, configuration, settings, cloud builder, GPU, disk allocation, private resources, firewall +description: Learn how to configure settings for Docker Offload. +keywords: cloud, configuration, settings, GPU --- -To use Docker Offload, you must start it in Docker Desktop. For more details, -see the [Docker Offload quickstart](/offload/quickstart/). +The following Docker Offload settings can be configured: -Settings for the cloud builders in Docker Offload can be further configured, in -addition to settings for an entire organization, through **Offload settings** in -the Docker Offload dashboard. + - [Run settings](#run-settings): Configure tenancy and data settings for + Docker Offload in your organization. + - [Offload access](#offload-access): Configure Offload availability for + members of your organization. -> [!NOTE] -> -> To view usage and configure billing for Docker Offload, see [Docker Offload -> usage and billing](/offload/usage/). +## Run settings -## Offload settings +The **Run settings** page in Docker Home lets you configure tenancy and data +settings for Docker Offload in your organization. -The **Offload settings** page in Docker Home lets you configure disk -allocation, private resource access, and firewall settings for your cloud -builders in your organization. - -To view the **Offload settings** page: +To view the **Run settings** page: 1. Go to [Docker Home](https://app.docker.com/). 2. Select the account for which you want to manage Docker Offload. -3. Select **Offload** > **Offload settings**. - -The following sections describe the available settings. - -### Disk allocation - -The **Disk allocation** setting lets you control how much of the available -storage is dedicated to the build cache. A lower allocation increases storage -available for active builds. - -Adjust the **Disk allocation** slider to specify the percentage of storage used -for build caching. - -Any changes take effect immediately. - -> [!TIP] -> -> If you build very large images, consider allocating less storage for caching. - -### Build cache space - -Your subscription includes the following Build cache space: +3. Select **Offload** > **Run settings**. -| Subscription | Build cache space | -|--------------|-------------------| -| Personal | N/A | -| Pro | 50GB | -| Team | 100GB | -| Business | 200GB | +## Offload access -To get more Build cache space, [upgrade your subscription](/manuals/subscription/change.md). +The **Offload access** page in Docker Home lets you configure Offload +availability for members of your organization. By default, Offload is disabled +for all members of an organization. An organization owner must enable Offload +access for the organization. To configure Docker Offload access as an +organization owner: -### Private resource access - -Private resource access lets cloud builders pull images and packages from -private resources. This feature is useful when builds rely on self-hosted -artifact repositories or private OCI registries. - -For example, if your organization hosts a private [PyPI](https://pypi.org/) -repository on a private network, Docker Build Cloud would not be able to access -it by default, since the cloud builder is not connected to your private network. - -To enable your cloud builders to access your private resources, enter the host -name and port of your private resource and then select **Add**. - -#### Authentication - -If your internal artifacts require authentication, make sure that you -authenticate with the repository either before or during the build. For internal -package repositories for npm or PyPI, use [build -secrets](/manuals/build/building/secrets.md) to authenticate during the build. -For internal OCI registries, use `docker login` to authenticate before building. - -Note that if you use a private registry that requires authentication, you will -need to authenticate with `docker login` twice before building. This is because -the cloud builder needs to authenticate with Docker to use the cloud builder, -and then again to authenticate with the private registry. - -```console -$ echo $DOCKER_PAT | docker login docker.io -u --password-stdin -$ echo $REGISTRY_PASSWORD | docker login registry.example.com -u --password-stdin -$ docker build --builder --tag registry.example.com/ --push . -``` - -### Firewall +1. Sign in to [Docker Home](https://app.docker.com/) as an organization owner. +2. Select the account for which you want to manage Docker Offload. +3. Select **Admin Console** > **Offload access**. +4. Select whether to enable or disable Offload access for all members of the + organization as well as allow or disallow GPU access. -Firewall settings let you restrict cloud builder egress traffic to specific IP -addresses. This helps enhance security by limiting external network egress from -the builder. + > [!NOTE] + > + > If you enable Offload access, all members of the organization can use + > Docker Offload. Members of the organization can choose to start or stop + > Offload in Docker Desktop. -1. Select **Enable firewall: Restrict cloud builder egress to specific public IP address**. -2. Enter the IP address you want to allow. -3. Select **Add** to apply the restriction. diff --git a/content/manuals/offload/optimize.md b/content/manuals/offload/optimize.md deleted file mode 100644 index 99e4aa8f6dc..00000000000 --- a/content/manuals/offload/optimize.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Optimize Docker Offload usage -linktitle: Optimize usage -weight: 40 -description: Learn how to optimize your Docker Offload usage. -keywords: cloud, optimize, performance, caching, cost efficiency ---- - -Docker Offload runs your builds remotely, not on the machine where you invoke the -build. This means that files must be transferred from your local system to the -cloud over the network. - -Transferring files over the network introduces higher latency and lower -bandwidth compared to local transfers. To reduce these effects, Docker Offload -includes several performance optimizations: - -- It uses attached storage volumes for build cache, which makes reading and writing cache fast. -- When pulling build results back to your local machine, it only transfers layers that changed since the previous build. - -Even with these optimizations, large projects or slower network connections can -lead to longer transfer times. Here are several ways to optimize your build -setup for Docker Offload: - -- [Use `.dockerignore` files](#dockerignore-files) -- [Choose slim base images](#slim-base-images) -- [Use multi-stage builds](#multi-stage-builds) -- [Fetch remote files during the build](#fetch-remote-files-in-build) -- [Leverage multi-threaded tools](#multi-threaded-tools) - -For general Dockerfile tips, see [Building best practices](/manuals/build/building/best-practices.md). - -### dockerignore files - -A [`.dockerignore` file](/manuals/build/concepts/context.md#dockerignore-files) -lets you specify which local files should *not* be included in the build -context. Files excluded by these patterns won’t be uploaded to Docker Offload -during a build. - -Typical items to ignore: - -- `.git` – avoids transferring your version history. (Note: you won’t be able to run `git` commands in the build.) -- Build artifacts or locally generated binaries. -- Dependency folders such as `node_modules`, if those are restored in the build - process. - -As a rule of thumb, your `.dockerignore` should be similar to your `.gitignore`. - -### Slim base images - -Smaller base images in your `FROM` instructions can reduce final image size and -improve build performance. The [`alpine`](https://hub.docker.com/_/alpine) image -is a good example of a minimal base. - -For fully static binaries, you can use [`scratch`](https://hub.docker.com/_/scratch), which is an empty base image. - -### Multi-stage builds - -[Multi-stage builds](/build/building/multi-stage/) let you separate build-time -and runtime environments in your Dockerfile. This not only reduces the size of -the final image but also allows for parallel stage execution during the build. - -Use `COPY --from` to copy files from earlier stages or external images. This -approach helps minimize unnecessary layers and reduce final image size. - -### Fetch remote files in build - -When possible, download large files from the internet during the build itself -instead of bundling them in your local context. This avoids network transfer -from your client to Docker Offload. - -You can do this using: - -- The Dockerfile [`ADD` instruction](/reference/dockerfile/#add) -- `RUN` commands like `wget`, `curl`, or `rsync` - -### Multi-threaded tools - -Some build tools, such as `make`, are single-threaded by default. If the tool -supports it, configure it to run in parallel. For example, use `make --jobs=4` -to run four jobs simultaneously. - -Taking advantage of available CPU resources in the cloud can significantly -improve build time. \ No newline at end of file diff --git a/content/manuals/offload/quickstart.md b/content/manuals/offload/quickstart.md index 9b07b4c2d7c..3224fd32931 100644 --- a/content/manuals/offload/quickstart.md +++ b/content/manuals/offload/quickstart.md @@ -2,31 +2,31 @@ title: Docker Offload quickstart linktitle: Quickstart weight: 10 -description: Learn how to use Docker Offload to build and run your container images faster, both locally and in CI. -keywords: cloud, quickstart, cloud mode, Docker Desktop, GPU support, cloud builder, usage +description: Learn how to use Docker Offload to run your container images faster. +keywords: cloud, quickstart, cloud mode, Docker Desktop, GPU support --- {{< summary-bar feature_name="Docker Offload" >}} This quickstart helps you get started with Docker Offload. Docker Offload lets -you build and run container images faster by offloading resource-intensive tasks +you run container images faster by offloading resource-intensive tasks to the cloud. It provides a cloud-based environment that mirrors your local Docker Desktop experience. -## Step 1: Sign up and subscribe to Docker Offload for access +## Step 1: Set up billing and enable Docker Offload -To access Docker Offload, you must [sign -up](https://www.docker.com/products/docker-offload/) and subscribe. +To use Docker Offload, you must have: -## Step 2: Start Docker Offload + - [A Docker account](/accounts/create-account/) + - [A verified payment method and on-demand billing enabled](./usage.md#manage-billing) + - [Docker Offload enabled](./configuration.md#offload-access). For users that + are part of an organization with a Team or Business subscription, Docker + Offload is disabled by default. An organization owner must enable Docker + Offload for the organization. -> [!NOTE] -> -> After subscribing to Docker Offload, the first time you start Docker Desktop -> and sign in, you may be prompted to start Docker Offload. If you start Docker -> Offload via this prompt, you can skip the following steps. Note that you can -> use the following steps to start Docker Offload at any time. +## Step 2: Start Docker Offload +To start Docker Offload: 1. Start Docker Desktop and sign in. 2. Open a terminal and run the following command to start Docker Offload: @@ -55,8 +55,8 @@ Docker Offload. ## Step 3: Run a container with Docker Offload -After starting Docker Offload, Docker Desktop connects to a secure cloud environment -that mirrors your local experience. When you run builds or containers, they +After starting Docker Offload, Docker Desktop connects to a secure cloud +environment that mirrors your local experience. When you run containers, they execute remotely, but behave just like local ones. To verify that Docker Offload is working, run a container: @@ -75,8 +75,8 @@ If Docker Offload is working, you'll see `Hello from Docker!` in the terminal ou ## Step 4: Stop Docker Offload -When you're done using Docker Offload, you can stop it. When stopped, you build -images and run containers locally. +When you're done using Docker Offload, you can stop it. When stopped, you run +containers locally. ```console $ docker offload stop diff --git a/content/manuals/offload/troubleshoot.md b/content/manuals/offload/troubleshoot.md index 802063cb038..844c9d6cad4 100644 --- a/content/manuals/offload/troubleshoot.md +++ b/content/manuals/offload/troubleshoot.md @@ -12,11 +12,10 @@ Docker Offload requires: - Authentication - An active internet connection - No restrictive proxy or firewall blocking traffic to Docker Cloud -- Beta access to Docker Offload -- Docker Desktop 4.43 or later +- Docker Desktop 4.46 or later -Docker Desktop uses Offload to run both builds and containers in the cloud. -If builds or containers are failing to run, falling back to local, or reporting +Docker Desktop uses Offload to run containers in the cloud. +If containers are failing to run, falling back to local, or reporting session errors, use the following steps to help resolve the issue. 1. Ensure Docker Offload is enabled in Docker Desktop: diff --git a/content/manuals/offload/usage.md b/content/manuals/offload/usage.md index 49b8d679b6d..58c4a6f2897 100644 --- a/content/manuals/offload/usage.md +++ b/content/manuals/offload/usage.md @@ -3,11 +3,9 @@ title: Docker Offload usage and billing linktitle: Usage & billing weight: 30 description: Learn about Docker Offload usage and how to monitor your cloud resources. -keywords: cloud, usage, cloud minutes, shared cache, top repositories, cloud builder, Docker Offload +keywords: cloud, usage, cloud minutes, Docker Offload, billing --- -{{< summary-bar feature_name="Docker Offload" >}} - > [!NOTE] > > All free trial credits granted for the Docker Offload Beta expire after 90 @@ -15,73 +13,32 @@ keywords: cloud, usage, cloud minutes, shared cache, top repositories, cloud bui > your credits expire, you can enable on-demand usage at [Docker Home > Billing](https://app.docker.com/billing). -## Docker Offload billing +In [Docker Home Billing](https://app.docker.com/billing), you can view usage and +manage billing for Docker Offload. -For Docker Offload, you can view and configure billing on the **Docker Offload** -page in [Docker Home Billing](https://app.docker.com/billing). On this page, you -can: +## Manage billing -- View your included budget -- View rates for cloud resources -- Enable or disable on-demand usage -- Add or change payment methods +To manage Docker Offload billing, you can do the following: -For more general information about billing, see [Billing](../billing/_index.md). +- Manage a payment methods: Go to [Docker Home + Billing](https://app.docker.com/billing) > **Payment methods**. +- Manage on-demand usage, set a limit, or view rates: Go to [Docker Home + Billing](https://app.docker.com/billing) > **Docker Offload** > **On-demand + settings**. -## Docker Offload overview +For more general information about billing, see [Billing](../billing/_index.md). -The Docker Offload overview page in Docker Home provides visibility into -how you or your team is using cloud resources to build and run containers. +## View Docker Offload usage -To view the **Overview** page: +To view Docker Offload usage: -1. Sign in to [Docker Home](https://app.docker.com/). +1. Sign in to [Docker Home Billing](https://app.docker.com/billing). 2. Select the account for which you want to manage Docker Offload. -3. Select **Offload** > **Overview**. - -The following sections describe the available widgets on **Overview**. - -### Offload minutes - -This widget shows the total number of offload minutes used over time. Offload -minutes represent the time spent running builds and containers in the Offload -environment. You can use this chart to: - -- Track your Offload usage trends over time. -- Spot spikes in usage, which may indicate CI changes or build issues. -- Estimate usage against your subscription limits. - -### Build cache usage - -This widget displays data about cache re-use across all builds, helping you -understand how effectively Docker Offload is using the build cache. It -provides insight into: - -- The percentage of cache hits vs. misses. -- How much estimated build time is saved by reusing cache layers. -- Opportunities to improve cache efficiency by tuning your Dockerfiles or build - strategy. - -### Top repositories built - -This widget highlights the repositories with the highest build activity for -Docker Offload. This widget helps you understand which projects consume the most -cloud resources and how efficiently they're being built. - -It includes both aggregated metrics and per-repository details to give you a -comprehensive view. - -Use this widget to: - -- Identify build hotspots: See which repositories are consuming the most build - time and resources. -- Spot trends: Monitor how build activity evolves across your projects. -- Evaluate efficiency: Check which repositories benefit most from cache re-use. -- Target improvements: Flag repositories with low cache hits or high failure - rates for optimization. +3. Select **Docker Offload** > **Usage summary**. -### Top 10 images +On the Docker Offload **Usage summary** page, you can: -This widget shows the top 10 images used in Docker Offload in run sessions. It -provides insight into which images are most frequently used, helping you -understand your team's container usage patterns. +- View your estimated amount due for on-demand usage +- View free trial usage remaining +- View included usage remaining +- View your recorded usage for the current billing period \ No newline at end of file diff --git a/data/summary.yaml b/data/summary.yaml index ed9b11e42b6..ce597c8936c 100644 --- a/data/summary.yaml +++ b/data/summary.yaml @@ -142,8 +142,7 @@ Docker Build Cloud: Docker CLI OpenTelemetry: requires: Docker Engine [26.1.0](/manuals/engine/release-notes/26.1.md#2610) and later Docker Offload: - availability: Beta - requires: Docker Desktop 4.43 and later + requires: Docker Desktop 4.46 and later docker compose alpha: availability: Experimental Docker Debug: