diff --git a/content/manuals/_index.md b/content/manuals/_index.md index 58b911701cfe..3ca75eb2b9ad 100644 --- a/content/manuals/_index.md +++ b/content/manuals/_index.md @@ -60,7 +60,7 @@ params: icon: /icons/dhi.svg link: /dhi/ - title: Docker Offload - description: Build and run containers in the cloud. + description: Run containers on GPU-accelerated infrastructure in the cloud. icon: cloud link: /offload/ - title: Build Cloud diff --git a/content/manuals/desktop/setup/vm-vdi.md b/content/manuals/desktop/setup/vm-vdi.md index 89459200f3a4..75a18351a429 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 cea387365598..487b0a1af1c1 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 8f6c9a804a14..0edbd8915c95 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 0af088a11bfd..9673a95421ce 100644 --- a/content/manuals/offload/configuration.md +++ b/content/manuals/offload/configuration.md @@ -1,104 +1,26 @@ --- 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/). +## Run settings -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. +The **Run settings** page in Docker Home lets you configure tenancy and data +settings for Docker Offload in your organization. -> [!NOTE] -> -> To view usage and configure billing for Docker Offload, see [Docker Offload -> usage and billing](/offload/usage/). - -## Offload settings - -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: - -| Subscription | Build cache space | -|--------------|-------------------| -| Personal | N/A | -| Pro | 50GB | -| Team | 100GB | -| Business | 200GB | - -To get more Build cache space, [upgrade your subscription](/manuals/subscription/change.md). - -### 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 - -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. +3. Select **Offload** > **Run settings**. -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. +## Organization settings +By default, Docker Offload is disabled for all members of an organization. An +organization owner must enable Offload access for the organization. For more +details on how to configure Docker Offload access as well as other +organization-wide settings, see [Manage Docker +products](./../admin/organization/manage-products.md). diff --git a/content/manuals/offload/optimize.md b/content/manuals/offload/optimize.md deleted file mode 100644 index 99e4aa8f6dc0..000000000000 --- 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 9b07b4c2d7c6..20aec45d2f85 100644 --- a/content/manuals/offload/quickstart.md +++ b/content/manuals/offload/quickstart.md @@ -2,31 +2,28 @@ 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 +To use Docker Offload, you must have: -To access Docker Offload, you must [sign -up](https://www.docker.com/products/docker-offload/) and subscribe. + - [A Docker account](/accounts/create-account/) + - [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. -## Step 2: Start Docker Offload - -> [!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 1: 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: @@ -53,10 +50,10 @@ in the Docker Desktop Dashboard header, and the Docker Desktop Dashboard appears You can run `docker offload status` in a terminal to check the status of Docker Offload. -## Step 3: Run a container with Docker Offload +## Step 2: 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: @@ -73,10 +70,10 @@ $ docker run --rm --gpus all hello-world If Docker Offload is working, you'll see `Hello from Docker!` in the terminal output. -## Step 4: Stop Docker Offload +## Step 3: 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 802063cb0385..844c9d6cad4e 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 49b8d679b6de..6af3bacfbcd6 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,36 @@ 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 - -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: - -- View your included budget -- View rates for cloud resources -- Enable or disable on-demand usage -- Add or change payment methods +In [Docker Home Billing](https://app.docker.com/billing), you can view usage and +manage billing for Docker Offload. -For more general information about billing, see [Billing](../billing/_index.md). +Authenticated Docker users receive a monthly allocation of minutes based on +their subscription plan. The minutes do not roll over to the next billing +period. -## Docker Offload overview +## View Docker Offload usage -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. +To view Docker Offload usage: -To view the **Overview** page: - -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 +3. Select **Docker Offload** > **Usage summary**. -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. +On the Docker Offload **Usage summary** page, you can: -It includes both aggregated metrics and per-repository details to give you a -comprehensive view. +- 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 -Use this widget to: +## Manage billing -- 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. +To manage Docker Offload billing, you can do the following: -### Top 10 images +- 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**. -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. +For more general information about billing, see [Billing](../billing/_index.md). \ No newline at end of file diff --git a/data/summary.yaml b/data/summary.yaml index ed9b11e42b62..ce597c8936c0 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: