Skip to content
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

desktop: ask gordon beta #21548

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
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
3 changes: 2 additions & 1 deletion _vale/Docker/Acronyms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ level: warning
ignorecase: false
# Ensures that the existence of 'first' implies the existence of 'second'.
first: '\b([A-Z]{2,5})\b'
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{2,5})\)'
second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{2,5})s?\)'
# ... with the exception of these:
exceptions:
- AGPL
- AI
- API
- ARM
- ASP
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 @@ -96,6 +96,7 @@ Windows
WireMock
Zscaler
Zsh
[Aa]nonymized?
[Aa]utobuild
[Bb]uildx
[Bb]uildpack(s)?
Expand Down
289 changes: 289 additions & 0 deletions content/manuals/desktop/features/gordon.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,289 @@
---
title: Ask Gordon
description: Learn how to streamline your workflow with Docker's AI-powered assistant.
weight: 10
params:
sidebar:
badge:
color: blue
text: Beta
---

{{< introduced desktop 4.37 >}}

{{% restricted title=Beta %}}
Ask Gordon is a Beta feature. Features, user interface, and behavior are
subject to change in future releases.
{{% /restricted %}}

Ask Gordon is your personal AI assistant embedded in Docker Desktop and the
Docker CLI. It's designed to streamline your workflow and help you make the
most of the Docker ecosystem.

## 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.

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.

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.

> [!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.

### What data does Gordon access?

When you use Ask Gordon, the data it accesses depends on the context of your
query:

- Local files: If you use the `docker ai` command, Ask Gordon can access
files and directories in the current working directory where the command is
executed. In Docker Desktop, if you ask about a specific file or directory in
the **Ask Gordon** view, you'll be prompted to select the relevant context.
- Local images: Gordon integrates with Docker Desktop and can view all images
in your local image store. This includes images you've built or pulled from a
registry.

To provide accurate responses, Ask Gordon may send relevant files, directories,
or image metadata to the Gordon backend along with your query. This data
transfer occurs over the network but is never stored persistently or shared
with third parties. It is used exclusively to process your request and
formulate a response.

All data transferred is encrypted in transit.

### How your data is collected and used

Docker collects anonymized data from your interactions with Ask Gordon to
enhance the service. This includes the following:

- Your queries: Questions you ask Gordon.
- Responses: Answers provided by Gordon.
- Feedback: Thumbs-up and thumbs-down ratings.

To ensure privacy and security:

- Data is anonymized and cannot be traced back to you or your account.
- Human reviewers may analyze anonymized data to refine responses for similar
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove that line as seen with Legal.
Docker collects anonymized data from your interactions with Ask Gordon to enhance the service is enough

queries.
- Docker does not use this data to train AI models or share it with third
parties.

By using Ask Gordon, you help improve Docker AI's reliability and accuracy,
making it more effective for all users.

If you have concerns about data collection or usage, you can
[disable](#disable-ask-gordon) the feature at any time.

## Setup

This feature requires Docker Desktop version 4.37 or later.

Ask Gordon is not enabled by Default for your Docker Desktop installation.
Before you can use Ask Gordon, you must:

- Sign in to your Docker account.
- Enable the feature in the Docker Desktop settings.
- Accept the terms of service.

### 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. Open the **Settings** view in Docker Desktop.
2. Navigate to **Features in development**.
3. Check the **Enable Docker AI** checkbox.
4. Select **Apply & restart**.

### Accept the terms of service

To start using Docker AI, you need to accept the terms of service. You can do
this in one of two ways:

- Open the **Ask Gordon** view in Docker Desktop and ask a question.
- Use the `docker ai` CLI command to issue a query.

The first time you interact with Docker AI, you'll see a prompt to accept the
terms of service. For example:

```console
$ docker ai what can you do?

Before using Gordon, please accept the terms of service
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe add a fake link/url at the end?

```

After accepting the terms, you can begin using Ask Gordon.

## Using Ask Gordon

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

View workflow job for this annotation

GitHub Actions / vale

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

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

Check failure on line 141 in content/manuals/desktop/features/gordon.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'chatbot'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'chatbot'?", "location": {"path": "content/manuals/desktop/features/gordon.md", "range": {"start": {"line": 141, "column": 22}}}, "severity": "ERROR"}
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 interface, you can use the button to get contextual support from Ask
Gordon.

## Example workflows

Ask Gordon is a general-purpose AI assistant created to help you with all your
Docker-related tasks and workflows. If you need some inspiration, here are a
few ways things you can try:

- [Troubleshoot a crashed container](#troubleshoot-a-crashed-container)
- [Get help with running a container](#get-help-with-running-a-container)
- [Improve a Dockerfile](#improve-a-dockerfile)

For more examples, try asking Gordon directly. For example:

```console
$ docker ai "What can you do?"
```

### Troubleshoot a crashed container

If you try to start a container with an invalid configuration or command, you
can use Ask Gordon to troubleshoot the error. For example, try starting a
Postgres container without specifying a database password:

```console
$ docker run postgres
Error: Database is uninitialized and superuser password is not specified.
You must specify POSTGRES_PASSWORD to a non-empty value for the
superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".

You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
connections without a password. This is *not* recommended.

See PostgreSQL documentation about "trust":
https://www.postgresql.org/docs/current/auth-trust.html
```

In the **Containers** view in Docker Desktop, select the ✨ icon next to the
container's name, or inspect the container and open the **Ask Gordon** tab.

### Get help with running a container

If you want to run a specific image but you're not sure how, Gordon might be
able to help you get set up:

1. Pull an image from Docker Hub (for example, `postgres`).
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
**Ask Gordon**.

![Ask Gordon hint in Docker Desktop](../images/gordon-run-ctr.png)

The linked text in the hint is a suggested prompt to start a conversation with
Ask Gordon.

### Improve a Dockerfile

Gordon can analyze your Dockerfile and suggest improvements. To have Gordon
evaluate your Dockerfile using the `docker ai` command:

1. Navigate to your project directory:

```console
$ cd path/to/my/project
```

2. Use the `docker ai` command to rate your Dockerfile:

```console
$ docker ai rate my Dockerfile
```

Gordon will analyze your Dockerfile and identify opportunities for improvement
across several dimensions:

- Build cache optimization
- Security
- Image size efficiency
- Best practices compliance
- Maintainability
- Reproducibility
- Portability
- Resource efficiency

## Disable Ask Gordon

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

View workflow job for this annotation

GitHub Actions / vale

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

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**.

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),
add the following property to your `admin-settings.json` file:

```json
{
"enableDockerAI": {
"value": false,
"locked": true
}
}
```

Alternatively, you can disable all Beta features by setting `allowBetaFeatures` to false:

```json
{
"allowBetaFeatures": {
"value": false,
"locked": true
}
}
```

## Feedback

<!-- vale Docker.We = NO -->

We value your input on Ask Gordon and encourage you to share your experience.
Your feedback helps us improve and refine Ask Gordon for all users. If you
encounter issues, have suggestions, or simply want to share what you like,
here's how you can get in touch:

- Thumbs-up and thumbs-down buttons

Rate Ask Gordon's responses using the thumbs-up or thumbs-down buttons in the
response.

- Feedback survey

You can access the Ask Gordon survey by following the _Give feedback_ link in
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.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ Using the `admin-settings.json` file, you can:
- Turn off Docker Extensions
- Turn off Docker Scout SBOM indexing
- Turn off beta and experimental features
- Turn off Docker AI ([Ask Gordon](../../../../desktop/features/gordon.md))
- Turn off Docker Desktop's onboarding survey
- Control whether developers can use the Docker terminal
- Control the file sharing implementation for your developers on macOS
Expand Down Expand Up @@ -79,4 +80,4 @@ In addition, if Enhanced Container Isolation is enforced, developers can't use p
## What's next?

- [Configure Settings Management with a `.json` file](configure-json-file.md)
- [Configure Settings Management with the Docker Admin Console](configure-admin-console.md)
- [Configure Settings Management with the Docker Admin Console](configure-admin-console.md)
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ The following `admin-settings.json` code and table provides an example of the re
|:-------------------------------|---|:-------------------------------|---|
| `allowExperimentalFeatures`| | If `value` is set to `false`, experimental features are disabled.| |
| `allowBetaFeatures`| | If `value` is set to `false`, beta features are disabled.| |
| `enableDockerAI` | | If `value` is set to `false`, Docker AI (Ask Gordon) features are disabled. | |

### Enhanced Container Isolation

Expand Down
2 changes: 0 additions & 2 deletions hugo_stats.json
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,6 @@
"aspect-video",
"bake-action",
"bg-amber-light",
"bg-amber-light-200",
"bg-background-light",
"bg-black/50",
"bg-black/70",
Expand Down Expand Up @@ -191,7 +190,6 @@
"containerd-image-store",
"cursor-pointer",
"dark:bg-amber-dark",
"dark:bg-amber-dark-200",
"dark:bg-background-dark",
"dark:bg-blue-dark",
"dark:bg-blue-dark-400",
Expand Down
23 changes: 11 additions & 12 deletions layouts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -134,23 +134,22 @@ <h2 class="font-medium">Getting started</h2>
<div class="bg-pattern-purple rounded p-6">
<div class="flex flex-col gap-12">
<div class="flex flex-col gap-4">
<h2 class="font-medium">Research</h2>
<h2 class="font-medium">
Ask Gordon
{{ partial "components/badge.html" (dict "color" "blue" "content" "Beta") }}
</h2>
<p class="text-xl">
Docker State of Application Development survey
Your personal Docker expert, built right into Docker Desktop.
</p>
<p>
Help us better understand and support the application development
community by answering our community survey.
</p>
<p>
The survey takes approximately 20-30 minutes to complete, and
you can save your progress and return at any time. As a thank
you, you can opt into a raffle for Docker swag and other
prizes!
Boost your productivity with Ask Gordon, an AI-powered
assistant designed to optimize your Docker workflows. From
improving Dockerfiles to troubleshooting containers, Gordon
is here to help.
</p>
</div>
<a href="https://docker.qualtrics.com/jfe/form/SV_3IDfGscnmh99ex8"
class="max-w-fit cursor-pointer rounded bg-blue-light px-4 py-2 text-white transition duration-300 hover:bg-blue-light-400 dark:bg-blue-dark-400 dark:hover:bg-blue-dark">Take the survey</a>
<a href="/desktop/features/gordon/"
class="max-w-fit cursor-pointer rounded bg-blue-light px-4 py-2 text-white transition duration-300 hover:bg-blue-light-400 dark:bg-blue-dark-400 dark:hover:bg-blue-dark">Read the docs</a>
</div>
</div>
</div>
Expand Down