Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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/Docker/Acronyms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ exceptions:
- KDE
- LESS
- LLDB
- LLM
- LTS
- MAC
- MATE
Expand Down
1 change: 1 addition & 0 deletions _vale/config/vocabularies/Docker/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ Nginx
Nutanix
Nuxeo
OAuth
Ollama
OTel
Okta
PKG
Expand Down
30 changes: 10 additions & 20 deletions content/manuals/desktop/features/containerd.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,38 @@
---
title: containerd image store
weight: 10
weight: 80
description: How to activate the containerd integration feature in Docker Desktop
keywords: Docker, containerd, engine, image store, lazy-pull
toc_max: 3
aliases:
- /desktop/containerd/
---

This page provides information about the ongoing integration of `containerd` for
image and file system management in the Docker Engine.
Docker Desktop is transitioning to use containerd for image and filesystem management. This page outlines the benefits, setup process, and new capabilities enabled by the containerd image store.

> [!NOTE]
>
> Images and containers are not shared between the classic image store and the
> new containerd image store. When you switch image stores, containers and
> images from the inactive store remain but are hidden until you switch back.
> Docker Desktop maintains separate image stores for the classic and containerd image stores.
> When switching between them, images and containers from the inactive store remain on disk but are hidden until you switch back.

## What is containerd?
## What is `containerd`?

`containerd` is an abstraction of the low-level kernel features
used to run and manage containers on a system.
It's a platform used in container software like Docker and Kubernetes.
`containerd` is a container runtime that provides a lightweight, consistent interface for container lifecycle management. It is already used under the hood by Docker Engine for creating, starting, and stopping containers.

Docker Engine already uses `containerd` for container lifecycle management,
which includes creating, starting, and stopping containers.
This page describes the next step of the containerd integration for Docker:
the containerd image store.
Docker Desktop’s ongoing integration of containerd now extends to the image store, offering more flexibility and modern image support.

## Image store
## What is the `containerd` image store?

The image store is the component responsible for pushing, pulling,
and storing images on the filesystem.

The classic Docker image store is limited in the types of images that it supports.
For example, it doesn't support image indices, containing manifest lists.
When you create multi-platform images, for example,
the image index resolves all the platform-specific variants of the image.
An image index is also required when building images with attestations.

The containerd image store extends range of image types
The containerd image store extends the range of image types
that the Docker Engine can natively interact with.
While this is a low-level architectural change,
it's a prerequisite for unlocking a range of new use cases, including:
Expand Down Expand Up @@ -88,8 +82,4 @@ and load them to your local image store:

<script async id="asciicast-ZSUI4Mi2foChLjbevl2dxt5GD" src="https://asciinema.org/a/ZSUI4Mi2foChLjbevl2dxt5GD.js"></script>

## Feedback

Thanks for trying the new features available with `containerd`. Give feedback or
report any bugs you may find through the issues tracker on the
[feedback form](https://dockr.ly/3PODIhD).
9 changes: 2 additions & 7 deletions content/manuals/desktop/features/desktop-cli.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
---
title: Using the Docker Desktop CLI
title: Use the Docker Desktop CLI
linkTitle: Docker Desktop CLI
weight: 120
weight: 100
description: How to use the Docker Desktop CLI
keywords: cli, docker desktop, macos, windows, linux
params:
sidebar:
badge:
color: green
text: New
---

{{< summary-bar feature_name="Docker Desktop CLI" >}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: Dev Environments
keywords: Dev Environments, share, local, Compose
title: Overview of Dev Environments
linkTitle: Dev Environments
weight: 40
weight: 130
aliases:
- /desktop/dev-environments/
params:
Expand Down
80 changes: 30 additions & 50 deletions content/manuals/desktop/features/gordon/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,22 @@

## What is Ask Gordon?

Ask Gordon is a suite of AI-powered capabilities integrated into Docker's tools.
These features, currently in Beta, are not enabled by default, and are not
production-ready. You may also encounter the term "Docker AI" as a broader
reference to this technology.
Ask Gordon provides AI-powered assistance in Docker tools. It offers contextual help for tasks like:

- Improving Dockerfiles
- Running and troubleshooting containers
- Interacting with your images and code
- Finding vulnerabilities or configuration issues

The goal of Ask Gordon is to make Docker's tools for managing images and
containers more intuitive and accessible. It provides contextual assistance
tailored to your local environment, including Dockerfiles, containers, and
applications.
It understands your local environment, including source code, Dockerfiles, and images, to provide personalized and actionable guidance.

Ask Gordon integrates directly with Docker's tools to help you perform specific
tasks. It understands your local setup, such as your local source code and
images. For example, you can ask Gordon to help you identify vulnerabilities in
your project or how to optimize a Dockerfile in your local repository. This
tight integration ensures responses are practical and actionable.
These features are not enabled by default, and are not
production-ready. You may also encounter the term "Docker AI" as a broader
reference to this technology.

> [!NOTE] Ask Gordon is powered by Large Language Models (LLMs). Like all
> [!NOTE]
>
> Ask Gordon is powered by Large Language Models (LLMs). Like all
> LLM-based tools, its responses may sometimes be inaccurate. Always verify the
> information provided.

Expand Down Expand Up @@ -81,55 +80,32 @@
If you have concerns about data collection or usage, you can
[disable](#disable-ask-gordon) the feature at any time.

## Setup

To use this feature, you must have:

- Docker Desktop version 4.38 or later.

Ask Gordon is not enabled by default. To enable the feature:

1. [Sign in](#sign-in) to your Docker account.
2. [Enable the feature](#enable-the-feature) in the Docker Desktop settings.
## Enable Ask Gordon

Check warning on line 83 in content/manuals/desktop/features/gordon/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.HeadingSentenceCase] Use sentence case for headings: 'Enable Ask Gordon'. Raw Output: {"message": "[Docker.HeadingSentenceCase] Use sentence case for headings: 'Enable Ask Gordon'.", "location": {"path": "content/manuals/desktop/features/gordon/_index.md", "range": {"start": {"line": 83, "column": 4}}}, "severity": "WARNING"}

### Sign in

1. Open Docker Desktop.
2. Select the **Sign in** button.
3. Complete the sign-in process in your web browser.

### Enable the feature

After signing in to your Docker Account, enable the Docker AI feature:

1. Navigate to the **Features in development** tab in settings.
2. Under the **Experimental features** tab, select **Access experimental features**.
3. Select **Apply and restart**.
4. Quit and reopen Docker Desktop to ensure the changes take effect.
5. Open the **Settings** view in Docker Desktop.
6. Navigate to **Features in development**.
7. From the **Beta** tab, check the **Enable Docker AI** checkbox.
1. Sign in to your Docker account.
2. Navigate to the **Features in development** tab in settings.
3. Under the **Experimental features** tab, select **Access experimental features**.
4. Select **Apply and restart**.
5. Quit and reopen Docker Desktop to ensure the changes take effect.
6. Open the **Settings** view in Docker Desktop.
7. Navigate to **Features in development**.
8. From the **Beta** tab, check the **Enable Docker AI** checkbox.

The Docker AI terms of service agreement is displayed. You must agree to the
terms before you can enable the feature. Review the terms and select **Accept
and enable** to continue.

8. Select **Apply & restart**.
9. Select **Apply & restart**.

## Using Ask Gordon

The primary interfaces to Docker's AI capabilities are through the **Ask
Gordon** view in Docker Desktop, or if you prefer to use the CLI: the `docker
ai` CLI command.

If you've used an AI chatbot before, these interfaces will be pretty familiar to
you. You can chat with the Docker AI to get help with your Docker tasks.

### Contextual help

Once you've enabled the Docker AI features, you'll also find references to **Ask
Gordon** in various other places throughout the Docker Desktop user interface.
Whenever you encounter a button with the "sparkles" (✨) icon in the user
Whenever you encounter a button with the **Sparkles** (✨) icon in the user
interface, you can use the button to get contextual support from Ask Gordon.

## Example workflows
Expand Down Expand Up @@ -179,7 +155,7 @@
2. Open the **Images** view in Docker Desktop and select the image.
3. Select the **Run** button.

In the _Run a new container_ dialog that opens, you should see a message about
In the **Run a new container** dialog, you should see a message about
**Ask Gordon**.

![Ask Gordon hint in Docker Desktop](../../images/gordon-run-ctr.png)
Expand Down Expand Up @@ -218,13 +194,17 @@

## Disable Ask Gordon

### For individual users

If you've enabled Ask Gordon and you want to disable it again:

1. Open the **Settings** view in Docker Desktop.
2. Navigate to **Features in development**.
3. Clear the **Enable Docker AI** checkbox.
4. Select **Apply & restart**.

### For organizations

If you want to disable Ask Gordon for your entire Docker organization, using
[Settings
Management](/manuals/security/for-admins/hardened-desktop/settings-management/_index.md),
Expand Down Expand Up @@ -271,4 +251,4 @@
the **Ask Gordon** view in Docker Desktop, or from the CLI by running the
`docker ai feedback` command.

Thank you for helping us improve Ask Gordon.

28 changes: 20 additions & 8 deletions content/manuals/desktop/features/gpu.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: GPU support in Docker Desktop
title: GPU support in Docker Desktop for Windows
linkTitle: GPU support
weight: 80
weight: 40
description: How to use GPU in Docker Desktop
keywords: gpu, gpu support, nvidia, wsl2, docker desktop, windows
toc_max: 3
Expand All @@ -13,22 +13,27 @@
>
> Currently GPU support in Docker Desktop is only available on Windows with the WSL2 backend.

## Using NVIDIA GPUs with WSL2
Docker Desktop for Windows supports NVIDIA GPU Paravirtualization (GPU-PV) on NVIDIA GPUs, allowing containers to access GPU resources for compute-intensive workloads like AI, machine learning, or video processing.

Check warning on line 16 in content/manuals/desktop/features/gpu.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Acronyms] 'PV' has no definition. Raw Output: {"message": "[Docker.Acronyms] 'PV' has no definition.", "location": {"path": "content/manuals/desktop/features/gpu.md", "range": {"start": {"line": 16, "column": 72}}}, "severity": "WARNING"}

Docker Desktop for Windows supports WSL 2 GPU Paravirtualization (GPU-PV) on NVIDIA GPUs. To enable WSL 2 GPU Paravirtualization, you need:
## Prerequisites

- A machine with an NVIDIA GPU
To enable WSL 2 GPU Paravirtualization, you need:

- A Windows machine with an NVIDIA GPU
- Up to date Windows 10 or Windows 11 installation
- [Up to date drivers](https://developer.nvidia.com/cuda/wsl) from NVIDIA supporting WSL 2 GPU Paravirtualization
- The latest version of the WSL 2 Linux kernel. Use `wsl --update` on the command line
- To make sure the [WSL 2 backend is turned on](wsl/_index.md#turn-on-docker-desktop-wsl-2) in Docker Desktop

To validate that everything works as expected, execute a `docker run` command with the `--gpus=all` flag. For example, the following will run a short benchmark on your GPU:
## Validate GPU support

To confirm GPU access is working inside Docker, run the following:

```console
$ docker run --rm -it --gpus=all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark
```
The output will be similar to:

This runs an n-body simulation benchmark on the GPU. The output will be similar to:

```console
Run "nbody -benchmark [-numbodies=<numBodies>]" to measure performance.
Expand Down Expand Up @@ -58,9 +63,16 @@
= 2724.379 single-precision GFLOP/s at 20 flops per interaction
```

Or if you wanted to try something more useful you could use the official [Ollama image](https://hub.docker.com/r/ollama/ollama) to run the Llama2 large language model.
## Run a real-world model: Llama2 with Ollama

Use the [official Ollama image](https://hub.docker.com/r/ollama/ollama) to run the Llama2 LLM with GPU acceleration:

```console
$ docker run --gpus=all -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
```

Then start the model:

```console
$ docker exec -it ollama ollama run llama2
```
2 changes: 1 addition & 1 deletion content/manuals/desktop/features/kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Kubernetes on Docker Desktop runs alongside other workloads, including Swarm ser

## What happens when I enable Kubernetes in Docker Desktop?

When you enable Kubernetes in Docker Desktop, the following actions are triggered in the Docker Desktop backend and VM:
The following actions are triggered in the Docker Desktop backend and VM:

- Generation of certificates and cluster configuration
- Download and installation of Kubernetes internal components
Expand Down
Loading