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
2 changes: 1 addition & 1 deletion assets/css/components.css
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
}
}
.button {
@apply mt-1 inline-block rounded-sm bg-blue-500 p-1 px-3 text-blue-50 text-white hover:bg-blue-600 dark:bg-blue-500 hover:dark:bg-blue-400;
@apply my-2 mr-2 inline-block rounded-sm bg-blue-500 p-1 px-3 text-blue-50 text-white hover:bg-blue-600 dark:bg-blue-500 hover:dark:bg-blue-400;
}

.summary-bar {
Expand Down
28 changes: 28 additions & 0 deletions content/includes/gordondhi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
1. Ensure Gordon is [enabled](/manuals/ai/gordon.md#enable-ask-gordon).
1. In Gordon's Toolbox, ensure Gordon's [Developer MCP toolkit is enabled](/manuals/ai/gordon/mcp/built-in-tools.md#configuration).
1. In the terminal, navigate to the directory containing your Dockerfile.
1. Start a conversation with Gordon:
```bash
docker ai
```
1. Type:
```console
"Migrate my dockerfile to DHI"
```
1. Follow the conversation with Gordon. Gordon will edit your Dockerfile, so when
it requests access to the filesystem and more, type `yes` to allow Gordon to proceed.

Check warning on line 13 in content/includes/gordondhi.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.RecommendedWords] Consider using 'let' instead of 'allow' Raw Output: {"message": "[Docker.RecommendedWords] Consider using 'let' instead of 'allow'", "location": {"path": "content/includes/gordondhi.md", "range": {"start": {"line": 13, "column": 65}}}, "severity": "INFO"}

> [!NOTE]
> To learn more about Gordon's data retention and the data it
> can access, see [Gordon](/manuals/ai/gordon.md#what-data-does-gordon-access).

When the migration is complete, you see a success message:

```text
The migration to Docker Hardened Images (DHI) is complete. The updated Dockerfile
successfully builds the image, and no vulnerabilities were detected in the final image.
The functionality and optimizations of the original Dockerfile have been preserved.
```

> [!IMPORTANT]
> As with any AI tool, you must verify Gordon's edits and test your image.
5 changes: 5 additions & 0 deletions content/manuals/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ params:
description: Run containers programmatically in your preferred programming language.
icon: /icons/Testcontainers.svg
link: /testcontainers/
- title: MCP Gateway
description: Manage and secure your AI tools with a single gateway.
icon: /icons/toolkit.svg
link: /ai/mcp-gateway/

ai:
- title: Ask Gordon
description: Streamline your workflow and get the most out of the Docker ecosystem with your personal AI assistant.
Expand Down
22 changes: 18 additions & 4 deletions content/manuals/ai/gordon/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,13 @@

## Key features

Ask Gordon provides AI-powered assistance within Docker tools. It can:
Ask Gordon provides AI-powered assistance in Docker tools. It can:

- Improve Dockerfiles
- Run and troubleshoot containers
- Interact with your images and code
- Find vulnerabilities or configuration issues
- Migrate a Dockerfile to use [Docker Hardened Images](/manuals/dhi/_index.md)

It understands your local environment, including source code, Dockerfiles, and
images, to provide personalized and actionable guidance.
Expand Down Expand Up @@ -104,9 +105,10 @@

## 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.
You can access Gordon:

- In Docker Desktop, in the **Ask Gordon** view.
- Via the Docker CLI, with the `docker ai` CLI command.

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.
Expand All @@ -122,6 +124,7 @@
- [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)
- [Migrate a Dockerfile to DHI](#migrate-a-dockerfile-to-dhi)

Check warning on line 127 in content/manuals/ai/gordon/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Acronyms] 'DHI' has no definition. Raw Output: {"message": "[Docker.Acronyms] 'DHI' has no definition.", "location": {"path": "content/manuals/ai/gordon/_index.md", "range": {"start": {"line": 127, "column": 28}}}, "severity": "WARNING"}

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

Expand Down Expand Up @@ -197,6 +200,17 @@
- Portability
- Resource efficiency

### Migrate a Dockerfile to DHI

Check warning on line 203 in content/manuals/ai/gordon/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Acronyms] 'DHI' has no definition. Raw Output: {"message": "[Docker.Acronyms] 'DHI' has no definition.", "location": {"path": "content/manuals/ai/gordon/_index.md", "range": {"start": {"line": 203, "column": 29}}}, "severity": "WARNING"}

Migrating your Dockerfile to use [Docker Hardened Images](/manuals/dhi/_index.md) helps you build
more secure, minimal, and production-ready containers. DHIs are designed to
reduce vulnerabilities, enforce best practices, and simplify compliance, making
them a strong foundation for secure software supply chains.

To request Gordon's help for the migration:

{{% include "gordondhi.md" %}}

## Disable Ask Gordon

### For individual users
Expand Down
36 changes: 22 additions & 14 deletions content/manuals/ai/mcp-catalog-and-toolkit/hub-mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@
> which means Gordon can automatically interact with your MCP servers.

## Using other clients
If want to integrate the Docker Hub MCP Server into your own development environment, you can find the source code and installation instructions on our [GitHub repository](https://github.com/docker/hub-mcp).
If want to integrate the Docker Hub MCP Server into your own development environment, you can find the source code and installation instructions on our [GitHub repository](https://github.com/docker/hub-mcp).

Check warning on line 32 in content/manuals/ai/mcp-catalog-and-toolkit/hub-mcp.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.We] Avoid using first-person plural like 'our'. Raw Output: {"message": "[Docker.We] Avoid using first-person plural like 'our'.", "location": {"path": "content/manuals/ai/mcp-catalog-and-toolkit/hub-mcp.md", "range": {"start": {"line": 32, "column": 149}}}, "severity": "WARNING"}

## Use Claude Desktop as a client

1. Add the Docker Hub MCP Server configuration to your `claude_desktop_config.json`:

### For public repositories only:
### For public repositories only

- `/FULL/PATH/TO/YOUR/docker-hub-mcp-server` - The complete path to where you cloned this repository
```json
Expand All @@ -48,11 +48,13 @@
}
}
```
### For authenticated access (recommended):

### For authenticated access

Replace the following values:
- `YOUR_DOCKER_HUB_USERNAME` - Your Docker Hub username
- `YOUR_DOCKER_HUB_PERSONAL_ACCESS_TOKEN` - Your Docker Hub Personal Access Token
- `/FULL/PATH/TO/YOUR/docker-hub-mcp-server` - The complete path to where you cloned this
- `/FULL/PATH/TO/YOUR/docker-hub-mcp-server` - The complete path to where you cloned this

```json
{
Expand All @@ -67,12 +69,15 @@
}
}
```
2. Save the configuration file and completely restart Claude Desktop for the changes to take effect.

1. Save the configuration file and completely restart Claude Desktop for the changes to take effect.

## Usage with VS Code

1. Add the Docker Hub MCP Server configuration to your User Settings (JSON) file in VS Code. You can do this by opening the `Command Palette` and typing `Preferences: Open User Settings (JSON)`.

### For public repositories only:
### For public repositories only


- `/FULL/PATH/TO/YOUR/docker-hub-mcp-server` - The complete path to where you cloned this repository
```json
Expand All @@ -85,11 +90,13 @@
}
}
```
### For authenticated access (recommended):

### For authenticated access

Replace the following values:
- `YOUR_DOCKER_HUB_USERNAME` - Your Docker Hub username
- `YOUR_DOCKER_HUB_PERSONAL_ACCESS_TOKEN` - Your Docker Hub Personal Access Token
- `/FULL/PATH/TO/YOUR/docker-hub-mcp-server` - The complete path to where you cloned this
- `/FULL/PATH/TO/YOUR/docker-hub-mcp-server` - The complete path to where you cloned this

```json
{
Expand All @@ -105,16 +112,17 @@
}
}
```
2. Open the `Command Palette` and type `MCP: List Servers`.
3. Select `docker-hub` and select `Start Server`.

1. Open the `Command Palette` and type `MCP: List Servers`.
1. Select `docker-hub` and select `Start Server`.

## Usage examples

This section provides task-oriented examples for common operations with Docker Hub
tools.

### Finding images

### Finding images

```console
# Search for official images
Expand All @@ -123,7 +131,7 @@
# Search for lightweight images to reduce deployment size and improve performance
$ docker ai "Search for minimal Node.js images with small footprint"

# Get the most recent tag of a base image
# Get the most recent tag of a base image
$ docker ai "Show me the latest tag details for go"

# Find a production-ready database with enterprise features and reliability
Expand All @@ -133,7 +141,6 @@
$ docker ai "Help me find the right Ubuntu version for my project"
```


### Repository management

```console
Expand All @@ -156,7 +163,8 @@
$ docker ai "Show me information about my '<repository-name>' repository"
```

### Pull/push images
### Pull/push images


```console
# Pull latest PostgreSQL version
Expand Down
28 changes: 16 additions & 12 deletions content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- /ai/gordon/mcp/gordon-mcp-server/
---

The Docker MCP Toolkit enables seamless setup, management, and execution of containerized MCP servers and their connections to AI agents. It removes the friction from tool usage by offering secure defaults, one-click setup, and support for a growing ecosystem of LLM-based clients. It is the fastest path from MCP tool discovery to local execution.
The Docker MCP Toolkit is a gateway that enables seamless setup, management, and execution of containerized MCP servers and their connections to AI agents. It removes the friction from tool usage by offering secure defaults, one-click setup, and support for a growing ecosystem of LLM-based clients. It is the fastest path from MCP tool discovery to local execution.

Check warning on line 10 in content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.RecommendedWords] Consider using 'select' instead of 'click' Raw Output: {"message": "[Docker.RecommendedWords] Consider using 'select' instead of 'click'", "location": {"path": "content/manuals/ai/mcp-catalog-and-toolkit/toolkit.md", "range": {"start": {"line": 10, "column": 230}}}, "severity": "INFO"}

## Key features

Expand All @@ -18,7 +18,7 @@

## How the MCP toolkit works

MCP introduces two core concepts: MCP clients and MCP servers.
MCP introduces two core concepts: MCP clients and MCP servers.

- MCP clients are typically embedded in LLM-based applications, such as
the Claude Desktop App. They request resources or actions.
Expand Down Expand Up @@ -55,7 +55,7 @@

### Passive security

- Image signing and attestation: All MCP server images under `mcp/` in the [catalog](catalog.md)
- Image signing and attestation: All MCP server images under `mcp/` in the [catalog](catalog.md)
are built by Docker and digitally
signed to verify their source and integrity. Each image includes a Software
Bill of Materials (SBOM) for full transparency.
Expand Down Expand Up @@ -95,7 +95,7 @@
When you select a server you can see the following
information:

- Tool name and description
- Tool name and description
- Partner/publisher
- The list of callable tools the server provides.

Expand Down Expand Up @@ -140,21 +140,21 @@

### Example: Use Claude Desktop as a client

Imagine you have Claude Desktop installed, and you want to use the GitHub MCP server,
Imagine you have Claude Desktop installed, and you want to use the GitHub MCP server,
and the Puppeteer MCP server, you do not have to install the servers in Claude Desktop.
You can simply install these 2 MCP servers in the MCP Toolkit,
and add Claude Desktop as a client:

1. From the **MCP Toolkit** menu, select the **Catalog** tab and find the **Puppeteer** server and add it.
2. Repeat for the **GitHub Official** server.
3. From the **Clients** tab, select **Connect** next to **Claude Desktop**. Restart
3. From the **Clients** tab, select **Connect** next to **Claude Desktop**. Restart
Claude Desktop if it's running, and it can now access all the servers in the MCP Toolkit.
4. Within Claude Desktop, run a test by submitting the following prompt using the Sonnet 3.5 model:

```text
Take a screenshot of docs.docker.com and then invert the colors
```
5. From the **Clients** tab, select **Connect** next to **Claude Desktop**. Restart
5. From the **Clients** tab, select **Connect** next to **Claude Desktop**. Restart
Claude Desktop if it's running, and it can now access all the servers in the MCP Toolkit.
6. Within Claude Desktop, run a test by submitting the following prompt using the Sonnet 3.5 model:

Expand All @@ -173,7 +173,7 @@
{{< tab name="Enable globally">}}

1. Insert the following in your VS Code's User`settings.json`:

```json
"mcp": {
"servers": {
Expand All @@ -195,11 +195,11 @@

1. In your terminal, navigate to your project's folder.
1. Run:

```bash
docker mcp client connect vscode
```

> [!NOTE]
> This command creates a `.vscode/mcp.json` file in the current directory. We
> recommend you add it to your `.gitignore` file.
Expand All @@ -208,7 +208,7 @@
{{</tabs >}}

1. In Visual Studio Code, open a new Chat and select the **Agent** mode:

![Copilot mode switching](./images/copilot-mode.png)

1. You can also check the available MCP tools:
Expand All @@ -224,11 +224,15 @@
OAuth integration. For now, the MCP Toolkit only supports GitHub OAuth.

1. On https://github.com/, ensure you are signed in.
1. In Docker Desktop, select **MCP Toolkit** and select the **OAuth** tab.
1. In Docker Desktop, select **MCP Toolkit** and select the **OAuth** tab.
1. In the GitHub entry, select **Authorize**. Your browser opens the GitHub authorization page.
1. In the GitHub authorization page, select **Authorize Docker**. Once the authorization
is successful, you are automatically redirected to Docker Desktop.
1. Install the **GitHub Official** MCP server, see [Install an MCP server](#install-an-mcp-server).

The MCP Toolkit now has access to your GitHub account. To revoke access, select **Revoke** in the **OAuth** tab.
See an example in [Use the **GitHub Official** MCP server](#example-use-the-github-official-mcp-server).

## Related pages

- [Open-source MCP Gateway](/manuals/ai/mcp-gateway/_index.md)
Loading
Loading