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
6 changes: 6 additions & 0 deletions _vale/Docker/Forbidden.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
extends: substitution
message: "Use '%s' instead of '%s'."
level: error
ignorecase: false
swap:
Docker CE: Docker Engine
8 changes: 5 additions & 3 deletions _vale/config/vocabularies/Docker/accept.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
(?i)[A-Z]{2,}'?s
Adreno
Aleksandrov
Amazon
Anchore
Aleksandrov
Apple
Artifactory
Azure
Expand Down Expand Up @@ -114,6 +115,7 @@ Nginx
npm
Nutanix
Nuxeo
NVIDIA
OAuth
Okta
Ollama
Expand All @@ -126,8 +128,7 @@ PKG
Postgres
PowerShell
Python
Pyright
pyright
Qualcomm
rollback
rootful
runc
Expand Down Expand Up @@ -200,6 +201,7 @@ Zsh
[Pp]rocfs
[Pp]roxied
[Pp]roxying
[pP]yright
[Rr]eal-time
[Rr]egex(es)?
[Rr]untimes?
Expand Down
11 changes: 6 additions & 5 deletions content/manuals/ai/mcp-catalog-and-toolkit/catalog.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: Docker MCP Catalog
description: Learn about the benefits of the MCP Catalog, how you can use it, and how you can contribute
keywords: docker hub, mcp, mcp servers, ai agents, calatog, docker
keywords: docker hub, mcp, mcp servers, ai agents, catalog, docker
---

The [Docker MCP Catalog](https://hub.docker.com/catalogs/mcp) is a centralized, trusted registry for discovering, sharing, and running MCP-compatible tools. Seamlessly integrated into Docker Hub, it offers verified, versioned, and curated MCP servers packaged as Docker images. The catalog is also available in Docker Desktop.
The [Docker MCP Catalog](https://hub.docker.com/mcp) is a centralized, trusted registry for discovering, sharing, and running MCP-compatible tools. Seamlessly integrated into Docker Hub, it offers verified, versioned, and curated MCP servers packaged as Docker images. The catalog is also available in Docker Desktop.

The catalog solves common MCP server challenges:

Expand Down Expand Up @@ -32,10 +32,11 @@ Each tool in the MCP Catalog is packaged as a Docker image with metadata:
- Connect tools to their preferred agents with simple configuration through the [MCP Toolkit](toolkit.md).
- Pull and run tools using Docker Desktop or the CLI.

Each catalog entry provides:
Each catalog entry displays:

- Tool description and metadata
- Version history
- List of tools provided by the MCP server
- Example configuration for agent integration

## Use an MCP server from the catalog
Expand All @@ -44,11 +45,11 @@ To use an MCP server from the catalog, see [MCP toolkit](toolkit.md).

## Contribute an MCP server to the catalog

The MCP server registry is available at https://github.com/docker/mcp-registry. To submit an MCP server:
The MCP server registry is available at https://github.com/docker/mcp-registry. To submit an MCP server,
follow the [contributing guidelines](https://github.com/docker/mcp-registry/blob/main/CONTRIBUTING.md).

When your pull request is reviewed and approved, your MCP server is available in 24 hours on:

- Docker Desktop's [MCP Toolkit feature](toolkit.md)
- The [Docker MCP catalog](https://hub.docker.com/mcp)
- The [Docker Hub](https://hub.docker.com/u/mcp) mcp namespace (for MCP servers built by Docker)
- The [Docker Hub](https://hub.docker.com/u/mcp) `mcp` namespace (for MCP servers built by Docker)
35 changes: 35 additions & 0 deletions content/manuals/ai/model-runner/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,41 @@ with AI models locally.
- Run and interact with AI models directly from the command line or from the Docker Desktop GUI
- Manage local models and display logs

## Requirements

Docker Model Runner is supported on the following platforms:

{{< tabs >}}
{{< tab name="Windows">}}

Windows(amd64):
- NVIDIA GPUs
- NVIDIA drivers 576.57+

Windows(arm64):
- OpenCL for Adreno
- Qualcomm Adreno GPU (6xx series and later)

> [!NOTE]
> Some llama.cpp features might not be fully supported on the 6xx series.

{{< /tab >}}
{{< tab name="MacOS">}}

- Apple Silicon

{{< /tab >}}
{{< tab name="Linux">}}

Docker Engine only:

- Linux CPU & Linux NVIDIA
- NVIDIA drivers 575.57.08+

{{< /tab >}}
{{</tabs >}}


## How it works

Models are pulled from Docker Hub the first time they're used and stored locally. They're loaded into memory only at runtime when a request is made, and unloaded when not in use to optimize resources. Since models can be large, the initial pull may take some time — but after that, they're cached locally for faster access. You can interact with the model using [OpenAI-compatible APIs](#what-api-endpoints-are-available).
Expand Down
16 changes: 4 additions & 12 deletions content/manuals/build/metadata/attestations/sbom.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,22 @@
title: SBOM attestations
keywords: build, attestations, sbom, spdx, metadata, packages
description: |
SBOM build attestations describe the contents of your image,
and the packages used to build it.
SBOM attestations describe what software artifacts an image contains and the artifacts used to create the image.
aliases:
- /build/attestations/sbom/
---

Software Bill of Materials (SBOM) attestations describe what software artifacts
an image contains, and artifacts used to create the image. Metadata included in
an SBOM for describing software artifacts may include:
SBOM attestations help ensure [software supply chain transparency](/guides/docker-scout/s3c.md) by verifying the software artifacts an image contains and the artifacts used to create the image. Metadata included in an [SBOM](/guides/docker-scout/sbom.md) for describing software artifacts may include:

- Name of the artifact
- Version
- License type
- Authors
- Unique package identifier

There are benefits to indexing contents of an image during the build, as opposed
to scanning a final image. When scanning happens as part of the build, you're
able to detect software you use to build the image, that may not show up in the
final image.
Indexing the contents of an image during the build has benefits over scanning a final image. When scanning happens as part of the build, you can detect software you used to build the image, which may not show up in the final image.

The SBOMs generated by BuildKit follow the SPDX standard. SBOMs attach to the
final image as a JSON-encoded SPDX document, using the format defined by the
[in-toto SPDX predicate](https://github.com/in-toto/attestation/blob/main/spec/predicates/spdx.md).
Docker supports SBOM generation and attestation through an SLSA-compliant build process using BuildKit and attestations. The SBOMs generated by [BuildKit](/manuals/build/buildkit/_index.md) follow the SPDX standard and attach to the final image as a JSON-encoded SPDX document, using the format defined by the [in-toto SPDX predicate](https://github.com/in-toto/attestation/blob/main/spec/predicates/spdx.md). On this page, you’ll learn how to create, manage, and verify SBOM attestations using Docker tooling.

## Create SBOM attestations

Expand Down
4 changes: 2 additions & 2 deletions content/manuals/compose/how-tos/lifecycle.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
title: Using lifecycle hooks with Compose
linkTitle: Use lifecycle hooks
weight: 20
desription: How to use lifecycle hooks with Docker Compose
keywords: cli, compose, lifecycle, hooks reference
description: Learn how to use Docker Compose lifecycle hooks like post_start and pre_stop to customize container behavior.
keywords: docker compose lifecycle hooks, post_start, pre_stop, docker compose entrypoint, docker container stop hooks, compose hook commands
---

{{< summary-bar feature_name="Compose lifecycle hooks" >}}
Expand Down
74 changes: 14 additions & 60 deletions content/manuals/compose/how-tos/profiles.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,12 @@ If you want to enable all profiles at the same time, you can run `docker compose

## Auto-starting profiles and dependency resolution

When you explicitly target a service on the command line that has one or more profiles assigned, you do not need to enable the profile manually as Compose runs that service regardless of whether its profile is activated. This is useful for running one-off services or debugging tools.

Only the targeted service (and any of its declared dependencies via `depends_on`) is started. Other services that share the same profile will not be started unless:
- They are also explicitly targeted, or
- The profile is explicitly enabled using `--profile` or `COMPOSE_PROFILES`.

When a service with assigned `profiles` is explicitly targeted on the command
line its profiles are started automatically so you don't need to start them
manually. This can be used for one-off services and debugging tools.
Expand All @@ -108,72 +114,19 @@ services:
```

```sh
# Only start backend and db
# Only start backend and db (no profiles involved)
$ docker compose up -d

# This runs db-migrations (and, if necessary, start db)
# by implicitly enabling the profiles "tools"
# Run the db-migrations service without manually enabling the 'tools' profile
$ docker compose run db-migrations
```

But keep in mind that `docker compose` only automatically starts the
profiles of the services on the command line and not of any dependencies.

This means that any other services the targeted service `depends_on` should either:
- Share a common profile
- Always be started, by omitting `profiles` or having a matching profile started explicitly

```yaml
services:
web:
image: web

mock-backend:
image: backend
profiles: ["dev"]
depends_on:
- db

db:
image: mysql
profiles: ["dev"]

phpmyadmin:
image: phpmyadmin
profiles: ["debug"]
depends_on:
- db
```

```sh
# Only start "web"
$ docker compose up -d

# Start mock-backend (and, if necessary, db)
# by implicitly enabling profiles "dev"
$ docker compose up -d mock-backend

# This fails because profiles "dev" is not enabled
$ docker compose up phpmyadmin
```

Although targeting `phpmyadmin` automatically starts the profiles `debug`, it doesn't automatically start the profiles required by `db` which is `dev`.
In this example, `db-migrations` runs even though it is assigned to the tools profile, because it was explicitly targeted. The `db` service is also started automatically because it is listed in `depends_on`.

To fix this you either have to add the `debug` profile to the `db` service:

```yaml
db:
image: mysql
profiles: ["debug", "dev"]
```

or start the `dev` profile explicitly:

```console
# Profiles "debug" is started automatically by targeting phpmyadmin
$ docker compose --profile dev up phpmyadmin
$ COMPOSE_PROFILES=dev docker compose up phpmyadmin
```
If the targeted service has dependencies that are also gated behind a profile, you must ensure those dependencies are either:
- In the same profile
- Started separately
- Not assigned to any profile so are always enabled

## Stop application and services with specific profiles

Expand Down Expand Up @@ -208,6 +161,7 @@ services:
```

if you only want to stop the `phpmyadmin` service, you can run

```console
$ docker compose down phpmyadmin
```
Expand Down
6 changes: 3 additions & 3 deletions content/manuals/compose/how-tos/project-name.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
---
title: Specify a project name
weight: 10
description: Understand the different ways you can set a project name in Compose and what the precedence is.
description: Learn how to set a custom project name in Compose and understand the precedence of each method.
keywords: name, compose, project, -p flag, name top-level element
aliases:
- /compose/project-name/
---

In Compose, the default project name is derived from the base name of the project directory. However, you have the flexibility to set a custom project name.
By default, Compose assigns the project name based on the name of the directory that contains the Compose file. You can override this with several methods.

This page offers examples of scenarios where custom project names can be helpful, outlines the various methods to set a project name, and provides the order of precedence for each approach.

> [!NOTE]
>
> The default project directory is the base directory of the Compose file. A custom value can also be set
> for it using the [`--project-directory` command line option](/reference/cli/docker/compose.md#use--p-to-specify-a-project-name).
> for it using the [`--project-directory` command line option](/reference/cli/docker/compose.md#options).

## Example use cases

Expand Down
6 changes: 3 additions & 3 deletions content/manuals/compose/how-tos/startup-order.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
description: How to control service startup and shutdown order in Docker Compose
keywords: documentation, docs, docker, compose, startup, shutdown, order
description: Learn how to manage service startup and shutdown order in Docker Compose using depends_on and healthchecks.
keywords: docker compose startup order, compose shutdown order, depends_on, service healthcheck, control service dependencies
title: Control startup and shutdown order in Compose
linkTitle: Control startup order
weight: 30
Expand All @@ -13,7 +13,7 @@ You can control the order of service startup and shutdown with the
containers in dependency order, where dependencies are determined by
`depends_on`, `links`, `volumes_from`, and `network_mode: "service:..."`.

A good example of when you might use this is an application which needs to access a database. If both services are started with `docker compose up`, there is a chance this will fail since the application service might start before the database service and won't find a database able to handle its SQL statements.
For example, if your application needs to access a database and both services are started with `docker compose up`, there is a chance this will fail since the application service might start before the database service and won't find a database able to handle its SQL statements.

## Control startup

Expand Down
2 changes: 1 addition & 1 deletion data/summary.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ Docker Init:
Docker Model Runner:
availability: Beta
requires: Docker Engine or Docker Desktop (Windows) 4.41+ or Docker Desktop (MacOS) 4.40+
for: Docker Desktop for Mac with Apple Silicon or Windows with NVIDIA GPUs
for: See Requirements section below
Docker Projects:
availability: Beta
Docker Scout exceptions:
Expand Down
3 changes: 3 additions & 0 deletions hugo_stats.json
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
"Mac-and-Linux",
"Mac-with-Apple-silicon",
"Mac-with-Intel-chip",
"MacOS",
"Manually-create-assets",
"NetworkManager",
"Networking-mode",
Expand All @@ -110,7 +111,9 @@
"Run-Ollama-in-a-container",
"Run-Ollama-outside-of-a-container",
"Rust",
"Separate-containers",
"Shell-script",
"Single-container",
"Specific-version",
"Svelte",
"Ubuntu",
Expand Down