From ffd3ccd0721f3edcb607b5e5b9f15fa017f375a2 Mon Sep 17 00:00:00 2001
From: David Karlsson <35727626+dvdksn@users.noreply.github.com>
Date: Thu, 10 Oct 2024 10:31:34 +0200
Subject: [PATCH 01/13] hugo: use render hook for markdown tables
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
---
assets/css/typography.css | 5 ---
hugo_stats.json | 2 ++
layouts/_default/_markup/render-table.html | 39 ++++++++++++++++++++++
3 files changed, 41 insertions(+), 5 deletions(-)
create mode 100644 layouts/_default/_markup/render-table.html
diff --git a/assets/css/typography.css b/assets/css/typography.css
index a0c6511e5908..008e7af70494 100644
--- a/assets/css/typography.css
+++ b/assets/css/typography.css
@@ -73,10 +73,5 @@
@apply text-lg;
line-height: 1.75;
}
- table {
- display: block;
- overflow-x: auto;
- max-width: 100%;
- }
}
}
diff --git a/hugo_stats.json b/hugo_stats.json
index 4ea6d584b275..a94d109722b2 100644
--- a/hugo_stats.json
+++ b/hugo_stats.json
@@ -155,6 +155,7 @@
"bg-gradient-to-br",
"bg-gradient-to-r",
"bg-gradient-to-t",
+ "bg-gray-dark-200",
"bg-gray-light-100",
"bg-gray-light-200",
"bg-gray-light-400",
@@ -416,6 +417,7 @@
"outline-none",
"overflow-clip",
"overflow-hidden",
+ "overflow-x-auto",
"overflow-x-hidden",
"overflow-y-auto",
"p-1",
diff --git a/layouts/_default/_markup/render-table.html b/layouts/_default/_markup/render-table.html
new file mode 100644
index 000000000000..1a32125cc1cb
--- /dev/null
+++ b/layouts/_default/_markup/render-table.html
@@ -0,0 +1,39 @@
+
+
+
+ {{- range .THead }}
+
+ {{- range . }}
+ |
+ {{- .Text -}}
+ |
+ {{- end }}
+
+ {{- end }}
+
+
+ {{- range .TBody }}
+
+ {{- range . }}
+ |
+ {{- .Text -}}
+ |
+ {{- end }}
+
+ {{- end }}
+
+
+
From ecc54f2b3b356d8db9298a72301387990b50cd7b Mon Sep 17 00:00:00 2001
From: David Karlsson <35727626+dvdksn@users.noreply.github.com>
Date: Thu, 10 Oct 2024 10:46:23 +0200
Subject: [PATCH 02/13] hugo: align cli table styles with defaults, add
horizontal overflow
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
---
layouts/_default/cli.html | 176 +++++++++++++++++++-------------------
1 file changed, 90 insertions(+), 86 deletions(-)
diff --git a/layouts/_default/cli.html b/layouts/_default/cli.html
index 347cce40997e..58c99c2c2c9d 100644
--- a/layouts/_default/cli.html
+++ b/layouts/_default/cli.html
@@ -11,38 +11,40 @@
{{ partial "breadcrumbs.html" . }}
-
-
- {{ with $data.short }}
-
- | Description |
- {{ . }}
- |
- {{ end }}
- {{ with $data.usage }}
-
- | Usage |
- {{ . }} |
-
- {{ end }}
- {{ with $data.aliases }}
- {{ $aliases := strings.Replace . (fmt.Printf "%s, " page.Title) "" }}
-
- |
- Aliases
- {{ partialCached "tooltip.html" "An alias is a short or memorable alternative for a longer command." "cli-alias" }}
- |
-
-
- {{ range (strings.Split $aliases ", ") }}
- {{ . }}
- {{ end }}
-
- |
-
- {{ end }}
-
-
+
+
+
+ {{ with $data.short }}
+
+ | Description |
+ {{ . }}
+ |
+ {{ end }}
+ {{ with $data.usage }}
+
+ | Usage |
+ {{ . }} |
+
+ {{ end }}
+ {{ with $data.aliases }}
+ {{ $aliases := strings.Replace . (fmt.Printf "%s, " page.Title) "" }}
+
+ |
+ Aliases
+ {{ partialCached "tooltip.html" "An alias is a short or memorable alternative for a longer command." "cli-alias" }}
+ |
+
+
+ {{ range (strings.Split $aliases ", ") }}
+ {{ . }}
+ {{ end }}
+
+ |
+
+ {{ end }}
+
+
+
{{ .Content }}
{{ if $data.deprecated }}
{{ markdownify `
@@ -96,62 +98,64 @@
{{ $heading := dict "level" 2 "text" "Options" }}
{{ partialCached "heading.html" $heading "cli-options" }}
{{ $.Scratch.Add "headings" $heading }}
-
-
-
- | Option |
- Default |
- Description |
-
-
-
- {{ range . }}
+
+
+
- {{ $short := .shorthand }}
- {{ $long := .option }}
-
- {{ with .details_url }}
-
- {{ with $short }}-{{ . }}, {{end}}--{{ $long }}
-
- {{ else }}
- {{ with $short }}-{{ . }}, {{end}}--{{ $long }}
- {{ end }}
- |
- {{ $skipDefault := `[],map[],false,0,0s,default,'',""` }}
-
- {{ with .default_value }}
- {{ cond (in $skipDefault .) "" (printf "%s" . | safeHTML) }}
- {{ end }}
- |
-
- {{ with .min_api_version }}
- {{ partialCached "components/badge.html" (dict "color" "blue" "content" (printf "API %s+" .)) "api" . }}
- {{ end }}
- {{ with .deprecated }}
- {{ partialCached "components/badge.html" (dict "color" "red" "content" "Deprecated") "deprecated" }}
- {{ end }}
- {{ with .experimental }}
- {{ partialCached "components/badge.html" (dict "color" "amber" "content" "experimental (daemon)") "exp" }}
- {{ end }}
- {{ with .experimentalcli }}
- {{ partialCached "components/badge.html" (dict "color" "amber" "content" "experimental (CLI)") "exp-cli" }}
- {{ end }}
- {{ with .kubernetes }}
- {{ partialCached "components/badge.html" (dict "color" "blue" "content" "Kubernetes") "k8s" }}
- {{ end }}
- {{ with .swarm }}
- {{ partialCached "components/badge.html" (dict "color" "blue" "content" "Swarm") "swarm" }}
- {{ end }}
- {{ if .description }}
- {{/* replace newlines in long desc with break tags */}}
- {{ markdownify (strings.Replace .description "\n" " ") }}
- {{ end }}
- |
+ Option |
+ Default |
+ Description |
- {{ end }}
-
-
+
+
+ {{ range . }}
+
+ {{ $short := .shorthand }}
+ {{ $long := .option }}
+
+ {{ with .details_url }}
+
+ {{ with $short }}-{{ . }}, {{end}}--{{ $long }}
+
+ {{ else }}
+ {{ with $short }}-{{ . }}, {{end}}--{{ $long }}
+ {{ end }}
+ |
+ {{ $skipDefault := `[],map[],false,0,0s,default,'',""` }}
+
+ {{ with .default_value }}
+ {{ cond (in $skipDefault .) "" (printf "%s" . | safeHTML) }}
+ {{ end }}
+ |
+
+ {{ with .min_api_version }}
+ {{ partialCached "components/badge.html" (dict "color" "blue" "content" (printf "API %s+" .)) "api" . }}
+ {{ end }}
+ {{ with .deprecated }}
+ {{ partialCached "components/badge.html" (dict "color" "red" "content" "Deprecated") "deprecated" }}
+ {{ end }}
+ {{ with .experimental }}
+ {{ partialCached "components/badge.html" (dict "color" "amber" "content" "experimental (daemon)") "exp" }}
+ {{ end }}
+ {{ with .experimentalcli }}
+ {{ partialCached "components/badge.html" (dict "color" "amber" "content" "experimental (CLI)") "exp-cli" }}
+ {{ end }}
+ {{ with .kubernetes }}
+ {{ partialCached "components/badge.html" (dict "color" "blue" "content" "Kubernetes") "k8s" }}
+ {{ end }}
+ {{ with .swarm }}
+ {{ partialCached "components/badge.html" (dict "color" "blue" "content" "Swarm") "swarm" }}
+ {{ end }}
+ {{ if .description }}
+ {{/* replace newlines in long desc with break tags */}}
+ {{ markdownify (strings.Replace .description "\n" " ") }}
+ {{ end }}
+ |
+
+ {{ end }}
+
+
+
{{ end }}
{{ end }}
{{ with $data.examples }}
From ba347ae523e2bb254ff391d767729eb9014d958a Mon Sep 17 00:00:00 2001
From: David Karlsson <35727626+dvdksn@users.noreply.github.com>
Date: Thu, 10 Oct 2024 17:57:18 +0200
Subject: [PATCH 03/13] site: bump the border contrast for dark mode tables
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
---
hugo_stats.json | 1 -
tailwind.config.js | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/hugo_stats.json b/hugo_stats.json
index a94d109722b2..e1bc72a731dd 100644
--- a/hugo_stats.json
+++ b/hugo_stats.json
@@ -155,7 +155,6 @@
"bg-gradient-to-br",
"bg-gradient-to-r",
"bg-gradient-to-t",
- "bg-gray-dark-200",
"bg-gray-light-100",
"bg-gray-light-200",
"bg-gray-light-400",
diff --git a/tailwind.config.js b/tailwind.config.js
index 9a9a8472712e..b02e5903a22b 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -39,7 +39,7 @@ module.exports = {
"--tw-prose-invert-hr": theme("colors.divider.dark"),
"--tw-prose-invert-captions": theme("colors.gray.dark.600"),
"--tw-prose-invert-th-borders": theme("colors.gray.dark.200"),
- "--tw-prose-invert-td-borders": theme("colors.gray.dark.200"),
+ "--tw-prose-invert-td-borders": theme("colors.gray.dark.300"),
},
},
}),
From cb2ded39326c4ec5fd29cab264d1a3faaf4524ad Mon Sep 17 00:00:00 2001
From: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>
Date: Thu, 24 Oct 2024 16:12:36 +0100
Subject: [PATCH 04/13] ENGDOCS-2077 (#20911)
## Description
RHEL moving to GA. This PR makes it visible in the TOC and adds the
download links
## Related issues or tickets
## Reviews
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
---
content/manuals/desktop/install/linux/rhel.md | 19 ++++++++++++-------
content/manuals/engine/install/_index.md | 4 +---
content/manuals/engine/install/rhel.md | 8 --------
3 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/content/manuals/desktop/install/linux/rhel.md b/content/manuals/desktop/install/linux/rhel.md
index ae941460c748..88132d0a083f 100644
--- a/content/manuals/desktop/install/linux/rhel.md
+++ b/content/manuals/desktop/install/linux/rhel.md
@@ -5,14 +5,14 @@ keywords: red hat, red hat enterprise linux, rhel, rpm,
desktop, docker desktop, docker desktop for linux, dd4l
title: Install Docker Desktop on RHEL
linkTitle: RHEL
-sitemap: false
download-url-base: https://download.docker.com/linux/rhel
+params:
+ sidebar:
+ badge:
+ color: green
+ text: New
---
-{{% restricted title="Early Access" %}}
-Docker Desktop on RHEL is in [Early Access](/manuals/release-lifecycle.md).
-{{% /restricted %}}
-
> **Docker Desktop terms**
>
> Commercial use of Docker Desktop in larger enterprises (more than 250
@@ -27,6 +27,7 @@ To install Docker Desktop successfully, you must:
- Meet the [general system requirements](_index.md#general-system-requirements).
- Have a 64-bit version of either RHEL 8 or RHEL 9.
+- Have a [Docker account](/manuals/accounts/create-account.md), as authentication is required for Docker Desktop on RHEL.
If you don't have `pass` installed, or it can't be installed, you must enable
[CodeReady Linux Builder (CRB) repository](https://access.redhat.com/articles/4348511)
@@ -90,7 +91,7 @@ To install Docker Desktop on RHEL:
$ sudo dnf config-manager --add-repo {{% param "download-url-base" %}}/docker-ce.repo
```
-2. Download the latest RPM package.
+2. Download the latest [RPM package](https://desktop.docker.com/linux/main/amd64/docker-desktop-x86_64.rpm?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64).
3. Install the package with dnf as follows:
@@ -114,7 +115,11 @@ The post-install script:
{{< include "desktop-linux-launch.md" >}}
->**Tip**
+> [!IMPORTANT]
+>
+> After launching Docker Desktop for RHEL, you must sign in to your Docker account to start using Docker Desktop.
+
+> [!TIP]
>
> To attach Red Hat subscription data to containers, see [Red Hat verified solution](https://access.redhat.com/solutions/5870841).
>
diff --git a/content/manuals/engine/install/_index.md b/content/manuals/engine/install/_index.md
index 7f69abfd7182..b67dbdef795d 100644
--- a/content/manuals/engine/install/_index.md
+++ b/content/manuals/engine/install/_index.md
@@ -49,13 +49,11 @@ through Docker Desktop. For instructions on how to install Docker Desktop, see:
| [Debian](debian.md) | ✅ | ✅ | ✅ | ✅ | |
| [Fedora](fedora.md) | ✅ | ✅ | | ✅ | |
| [Raspberry Pi OS (32-bit)](raspberry-pi-os.md) | | | ✅ | | |
-| [RHEL](rhel.md) | 🚧 | 🚧 | | | ✅ |
+| [RHEL](rhel.md) | ✅ | ✅ | | | ✅ |
| [SLES](sles.md) | | | | | ✅ |
| [Ubuntu](ubuntu.md) | ✅ | ✅ | ✅ | ✅ | ✅ |
| [Binaries](binaries.md) | ✅ | ✅ | ✅ | | |
-🚧 = Experimental
-
### Other Linux distros
> [!NOTE]
diff --git a/content/manuals/engine/install/rhel.md b/content/manuals/engine/install/rhel.md
index 3928f85904e1..07a8fae23085 100644
--- a/content/manuals/engine/install/rhel.md
+++ b/content/manuals/engine/install/rhel.md
@@ -18,14 +18,6 @@ aliases:
download-url-base: https://download.docker.com/linux/rhel
---
-{{% experimental %}}
-Support for Docker Engine on RHEL x86_64 and aarch64 is experimental.
-{{% /experimental %}}
-
-{{% restricted title="Docker Desktop for Linux is also available for RHEL." %}}
-To get access, join the [Early Access Program](https://www.docker.com/docker-desktop-preview-program/).
-{{% /restricted %}}
-
To get started with Docker Engine on RHEL, make sure you
[meet the prerequisites](#prerequisites), and then follow the
[installation steps](#installation-methods).
From bd73f0ecd5eaa8d690dafbfce5fd699f7edf938c Mon Sep 17 00:00:00 2001
From: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>
Date: Thu, 24 Oct 2024 16:12:53 +0100
Subject: [PATCH 05/13] Engdocs 2267 (#21231)
## Description
Ubuntu 24.04 now supported with latest DD release
## Related issues or tickets
## Reviews
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
---------
Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
---
content/manuals/desktop/install/linux/ubuntu.md | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/content/manuals/desktop/install/linux/ubuntu.md b/content/manuals/desktop/install/linux/ubuntu.md
index e4f4962384ed..4a2b7bc05519 100644
--- a/content/manuals/desktop/install/linux/ubuntu.md
+++ b/content/manuals/desktop/install/linux/ubuntu.md
@@ -27,11 +27,7 @@ This page contains information on how to install, launch and upgrade Docker Desk
To install Docker Desktop successfully, you must:
- Meet the [general system requirements](_index.md#general-system-requirements).
-- Have a 64-bit version of either the LTS version Ubuntu Jammy Jellyfish 22.04, or the current non-LTS version. Docker Desktop is supported on `x86_64` (or `amd64`) architecture.
- > [!NOTE]
- >
- > The latest Ubuntu 24.04 LTS is not yet supported. Docker Desktop will fail to start. Due to a change in how the latest Ubuntu release restricts the unprivileged namespaces, `sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0` needs to be run at least once. Refer to the [Ubuntu Blog](https://ubuntu.com/blog/ubuntu-23-10-restricted-unprivileged-user-namespaces) for more details.
-
+- Have an x86-64 system with Ubuntu 22.04, 24.04, or the latest non-LTS version.
- For non-Gnome Desktop environments, `gnome-terminal` must be installed:
```console
$ sudo apt install gnome-terminal
From db0f1a6fa63500ea2ef3930bdde01b198fd6f575 Mon Sep 17 00:00:00 2001
From: Dorin-Andrei Geman
Date: Thu, 24 Oct 2024 18:13:27 +0300
Subject: [PATCH 06/13] desktop/settings: Add Docker VMM (#20986)
## Description
Add Docker VMM to the Settings docs for macOS.
---------
Signed-off-by: Dorin Geman
Co-authored-by: Mihaela Stoica
---
content/manuals/desktop/settings.md | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/content/manuals/desktop/settings.md b/content/manuals/desktop/settings.md
index 732f8ee2570f..81c53f20198e 100644
--- a/content/manuals/desktop/settings.md
+++ b/content/manuals/desktop/settings.md
@@ -59,17 +59,19 @@ If you choose the integrated terminal, you can run commands in a running contain
and the ability to run Wasm applications with Docker.
For more information, see [containerd image store](containerd.md).
-- {{< badge color=blue text="Mac only" >}} **Use Virtualization framework**. Select to allow Docker Desktop to use the `virtualization.framework` instead of the `hypervisor.framework`.
+- {{< badge color=blue text="Mac only" >}} **Choose Virtual Machine Manager (VMM)**. Choose the Virtual Machine Manager for creating and managing the Docker Desktop Linux VM.
+ - Select **Docker VMM** for the latest and most performant Hypervisor/Virtual Machine Manager. This option is available only on Apple Silicon Macs running macOS 12.5 or later and is currently in Beta.
> [!TIP]
>
> Turn this setting on to make Docker Desktop run faster.
+ - Alternatively, you can choose **Apple Virtualization framework**, **QEMU** (for Apple Silicon), or **HyperKit** (for Intel Macs). For macOS 12.5 and later, Apple Virtualization framework is the default setting.
-- {{< badge color=blue text="Mac only" >}}**Choose file sharing implementation for your containers**. Choose whether you want to share files using **VirtioFS**, **gRPC FUSE**, or **osxfs (Legacy)**. VirtioFS is only available for macOS versions 12.5 and above, and is turned on by default.
- >**Tip**
+- {{< badge color=blue text="Mac only" >}}**Choose file sharing implementation for your containers**. Choose whether you want to share files using **VirtioFS**, **gRPC FUSE**, or **osxfs (Legacy)**. VirtioFS is only available for macOS 12.5 and later, and is turned on by default.
+ > [!TIP]
>
- > Use VirtioFS for speedy file sharing. VirtioFS has reduced the time taken to complete filesystem operations by [up to 98%](https://github.com/docker/roadmap/issues/7#issuecomment-1044452206)
+ > Use VirtioFS for speedy file sharing. VirtioFS has reduced the time taken to complete filesystem operations by [up to 98%](https://github.com/docker/roadmap/issues/7#issuecomment-1044452206). It is the only file sharing implementation supported by Docker VMM.
-- {{< badge color=blue text="Mac only" >}}**Use Rosetta for x86_64/amd64 emulation on Apple Silicon**. Turns on Rosetta to accelerate x86/AMD64 binary emulation on Apple Silicon. This option is only available if you have turned on **Virtualization framework** in the **General** settings tab. You must also be on macOS 13 or later.
+- {{< badge color=blue text="Mac only" >}}**Use Rosetta for x86_64/amd64 emulation on Apple Silicon**. Turns on Rosetta to accelerate x86/AMD64 binary emulation on Apple Silicon. This option is only available if you have selected **Apple Virtualization framework** as the Virtual Machine Manager. You must also be on macOS 13 or later.
- **Send usage statistics**. Select so Docker Desktop sends diagnostics,
crash reports, and usage data. This information helps Docker improve and
From 4753a92327741f84fbb931b00981bd772e17f41a Mon Sep 17 00:00:00 2001
From: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>
Date: Thu, 24 Oct 2024 16:14:00 +0100
Subject: [PATCH 07/13] ENGDOCS-2222 (#20912)
## Description
New installations of Docker Desktop for Windows now require a Windows
version of 19045 or later
## Related issues or tickets
## Reviews
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
---
.../manuals/desktop/install/windows-install.md | 18 ++++++------------
1 file changed, 6 insertions(+), 12 deletions(-)
diff --git a/content/manuals/desktop/install/windows-install.md b/content/manuals/desktop/install/windows-install.md
index 81b97be8e32d..d7e733e13479 100644
--- a/content/manuals/desktop/install/windows-install.md
+++ b/content/manuals/desktop/install/windows-install.md
@@ -46,10 +46,8 @@ _For checksums, see [Release notes](../release-notes.md)_
{{< tab name="WSL 2 backend, x86_64" >}}
- WSL version 1.1.3.0 or later.
-- Windows 11 64-bit: Home or Pro version 21H2 or higher, or Enterprise or Education version 21H2 or higher.
-- Windows 10 64-bit:
- - We recommend Home or Pro 22H2 (build 19045) or higher, or Enterprise or Education 22H2 (build 19045) or higher.
- - Minimum required is Home or Pro 21H2 (build 19044) or higher, or Enterprise or Education 21H2 (build 19044) or higher.
+- Windows 11 64-bit: Home or Pro version 22H2 or higher, or Enterprise or Education version 22H2 or higher.
+- Windows 10 64-bit: Minimum required is Home or Pro 22H2 (build 19045) or higher, or Enterprise or Education 22H2 (build 19045) or higher.
- Turn on the WSL 2 feature on Windows. For detailed instructions, refer to the
[Microsoft documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10).
- The following hardware prerequisites are required to successfully run
@@ -73,10 +71,8 @@ For more information on setting up WSL 2 with Docker Desktop, see [WSL](../wsl/_
{{< /tab >}}
{{< tab name="Hyper-V backend, x86_64" >}}
-- Windows 11 64-bit: Home or Pro version 21H2 or higher, or Enterprise or Education version 21H2 or higher.
-- Windows 10 64-bit:
- - Home or Pro 22H2 (build 19045) or higher, or Enterprise or Education 22H2 (build 19045) or higher is recommended.
- - Minimum required is Home or Pro 21H2 (build 19044) or higher, or Enterprise or Education 21H2 (build 19044) or higher.
+- Windows 11 64-bit: Home or Pro version 22H2 or higher, or Enterprise or Education version 22H2 or higher.
+- Windows 10 64-bit: Minimum required is Home or Pro 22H2 (build 19045) or higher, or Enterprise or Education 22H2 (build 19045) or higher.
- Turn on Hyper-V and Containers Windows features.
- The following hardware prerequisites are required to successfully run Client
Hyper-V on Windows 10:
@@ -100,10 +96,8 @@ For more information on setting up WSL 2 with Docker Desktop, see [WSL](../wsl/_
{{< tab name="WSL 2 backend, Arm (Beta)" >}}
- WSL version 1.1.3.0 or later.
-- Windows 11 64-bit: Home or Pro version 21H2 or higher, or Enterprise or Education version 21H2 or higher.
-- Windows 10 64-bit:
- - Home or Pro 22H2 (build 19045) or higher, or Enterprise or Education 22H2 (build 19045) or higher is recommended.
- - Minimum required is Home or Pro 21H2 (build 19044) or higher, or Enterprise or Education 21H2 (build 19044) or higher.
+- Windows 11 64-bit: Home or Pro version 22H2 or higher, or Enterprise or Education version 22H2 or higher.
+- Windows 10 64-bit: Minimum required is Home or Pro 22H2 (build 19045) or higher, or Enterprise or Education 22H2 (build 19045) or higher.
- Turn on the WSL 2 feature on Windows. For detailed instructions, refer to the
[Microsoft documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10).
- The following hardware prerequisites are required to successfully run
From 041329628a1dcdc0cbee6bc8eee6255253986cd6 Mon Sep 17 00:00:00 2001
From: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>
Date: Thu, 24 Oct 2024 16:14:14 +0100
Subject: [PATCH 08/13] ENGDOCS-2220 (#20882)
## Description
## Related issues or tickets
## Reviews
- [ ] Technical review
- [ ] Editorial review
- [ ] Product review
---
content/manuals/desktop/faqs/linuxfaqs.md | 8 +++++++-
content/manuals/desktop/install/linux/_index.md | 5 +----
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/content/manuals/desktop/faqs/linuxfaqs.md b/content/manuals/desktop/faqs/linuxfaqs.md
index c0761110e0a9..0cd0dbc98566 100644
--- a/content/manuals/desktop/faqs/linuxfaqs.md
+++ b/content/manuals/desktop/faqs/linuxfaqs.md
@@ -40,7 +40,11 @@ Docker Desktop for Linux runs a Virtual Machine (VM) for the following reasons:
Docker Desktop for Linux uses [VirtioFS](https://virtio-fs.gitlab.io/) as the
default (and currently only) mechanism to enable file sharing between the host
-and Docker Desktop VM. In order not to require elevated privileges, without
+and Docker Desktop VM.
+
+{{< accordion title="Additional information for Docker Desktop version 4.34 and earlier" >}}
+
+In order not to require elevated privileges, without
unnecessarily restricting operations on the shared files, Docker Desktop runs
the file sharing service (`virtiofsd`) inside a user namespace (see
`user_namespaces(7)`) with UID and GID mapping configured. As a result Docker
@@ -88,6 +92,8 @@ easy access to such a file on the host. The problem is resolved by creating
a group with the new GID and adding our user to it, or by setting a recursive
ACL (see `setfacl(1)`) for folders shared with the Docker Desktop VM.
+{{< /accordion >}}
+
### Where does Docker Desktop store Linux containers?
Docker Desktop stores Linux containers and images in a single, large "disk image" file in the Linux filesystem. This is different from Docker on Linux, which usually stores containers and images in the `/var/lib/docker` directory on the host's filesystem.
diff --git a/content/manuals/desktop/install/linux/_index.md b/content/manuals/desktop/install/linux/_index.md
index 34d62e598caf..b6c364d70aa1 100644
--- a/content/manuals/desktop/install/linux/_index.md
+++ b/content/manuals/desktop/install/linux/_index.md
@@ -116,9 +116,6 @@ Refer to the [Docker Context documentation](/manuals/engine/manage-resources/con
Docker provides `.deb` and `.rpm` packages from the following Linux distributions
and architectures:
-
-
-
| Platform | x86_64 / amd64 |
|:------------------------|:-----------------------:|
| [Ubuntu](ubuntu.md) | ✅ |
@@ -142,7 +139,7 @@ To install Docker Desktop successfully, your Linux host must meet the following
- Gnome, KDE, or MATE Desktop environment.
- For many Linux distros, the Gnome environment does not support tray icons. To add support for tray icons, you need to install a Gnome extension. For example, [AppIndicator](https://extensions.gnome.org/extension/615/appindicator-support/).
- At least 4 GB of RAM.
-- Enable configuring ID mapping in user namespaces, see [File sharing](/manuals/desktop/faqs/linuxfaqs.md#how-do-i-enable-file-sharing).
+- Enable configuring ID mapping in user namespaces, see [File sharing](/manuals/desktop/faqs/linuxfaqs.md#how-do-i-enable-file-sharing). Note that for Docker Desktop version 4.35 and later, this is not required anymore.
- Recommended: [Initialize `pass`](/manuals/desktop/get-started.md#credentials-management-for-linux-users) for credentials management.
Docker Desktop for Linux runs a Virtual Machine (VM). For more information on why, see [Why Docker Desktop for Linux runs a VM](/manuals/desktop/faqs/linuxfaqs.md#why-does-docker-desktop-for-linux-run-a-vm).
From 64a3458c914f39ce15b29d732018510eb32fd0eb Mon Sep 17 00:00:00 2001
From: Craig Gumbley
Date: Thu, 24 Oct 2024 16:14:39 +0100
Subject: [PATCH 09/13] Update references to settings.json to reflect new name
(#21003)
## Description
As part of the settings management project, settings.json has been
renamed to settings-store.json.
This change updates the public docs so that they reflect the new name.
## Related issues or tickets
https://docker.atlassian.net/browse/DS-1506
## Reviews
- [x] Technical review @ebriney @aiordache
- [x] Editorial review @aevesdocker
- [x] Product review @KatTomrushka
---
content/manuals/desktop/settings.md | 8 ++++----
content/manuals/desktop/troubleshoot/topics.md | 12 ++++++------
.../manuals/desktop/use-desktop/resource-saver.md | 8 ++++----
content/manuals/extensions/settings-feedback.md | 8 ++++----
.../hardened-desktop/settings-management/_index.md | 2 +-
.../settings-management/configure.md | 2 +-
6 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/content/manuals/desktop/settings.md b/content/manuals/desktop/settings.md
index 81c53f20198e..2c2b2831d90e 100644
--- a/content/manuals/desktop/settings.md
+++ b/content/manuals/desktop/settings.md
@@ -16,10 +16,10 @@ To navigate to **Settings** either:
- Select the Docker menu {{< inline-image src="images/whale-x.svg" alt="whale menu" >}} and then **Settings**
- Select the **Settings** icon from the Docker Desktop Dashboard.
-You can also locate the `settings.json` file at:
- - Mac: `~/Library/Group Containers/group.com.docker/settings.json`
- - Windows: `C:\Users\[USERNAME]\AppData\Roaming\Docker\settings.json`
- - Linux: `~/.docker/desktop/settings.json`
+You can also locate the `settings-store.json` file (or `settings.json` for Docker Desktop versions 4.34 and earlier) at:
+ - Mac: `~/Library/Group Containers/group.com.docker/settings-store.json`
+ - Windows: `C:\Users\[USERNAME]\AppData\Roaming\Docker\settings-store.json`
+ - Linux: `~/.docker/desktop/settings-store.json`
## General
diff --git a/content/manuals/desktop/troubleshoot/topics.md b/content/manuals/desktop/troubleshoot/topics.md
index e92534096f4c..40c611da64ea 100644
--- a/content/manuals/desktop/troubleshoot/topics.md
+++ b/content/manuals/desktop/troubleshoot/topics.md
@@ -42,13 +42,13 @@ Docker Desktop uses hardware-accelerated graphics by default, which may cause pr
Docker Desktop will launch successfully, but some screens may appear green, distorted,
or have some visual artifacts.
-To work around this issue, disable hardware acceleration by creating a `"disableHardwareAcceleration": true` entry in Docker Desktop's `settings.json` file. You can find this file at:
+To work around this issue, disable hardware acceleration by creating a `"disableHardwareAcceleration": true` entry in Docker Desktop's `settings-store.json` file (or `settings.json` for Docker Desktop versions 4.34 and earlier). You can find this file at:
-- Mac: `~/Library/Group Containers/group.com.docker/settings.json`
-- Windows: `C:\Users\[USERNAME]\AppData\Roaming\Docker\settings.json`
-- Linux: `~/.docker/desktop/settings.json.`
+- Mac: `~/Library/Group Containers/group.com.docker/settings-store.json`
+- Windows: `C:\Users\[USERNAME]\AppData\Roaming\Docker\settings-store.json`
+- Linux: `~/.docker/desktop/settings-store.json.`
-After updating the `settings.json` file, close and restart Docker Desktop to apply the changes.
+After updating the `settings-store.json` file, close and restart Docker Desktop to apply the changes.
## Topics for Linux and Mac
@@ -109,7 +109,7 @@ in the Apple documentation, and Docker Desktop [Mac system requirements](../inst
In Docker Desktop version 4.19, gVisor replaced VPNKit to enhance the performance of VM networking when using the Virtualization framework on macOS 13 and above.
-To continue using VPNKit, add `"networkType":"vpnkit"` to your `settings.json` file located at `~/Library/Group Containers/group.com.docker/settings.json`.
+To continue using VPNKit, add `"networkType":"vpnkit"` to your `settings-store.json` file located at `~/Library/Group Containers/group.com.docker/settings-store.json`.
## Topics for Windows
diff --git a/content/manuals/desktop/use-desktop/resource-saver.md b/content/manuals/desktop/use-desktop/resource-saver.md
index 9dfea5575667..929163bf23e5 100644
--- a/content/manuals/desktop/use-desktop/resource-saver.md
+++ b/content/manuals/desktop/use-desktop/resource-saver.md
@@ -24,11 +24,11 @@ timer as shown below.
If the values available aren't sufficient for your
needs, you can reconfigure it to any value, as long as the value is larger than 30 seconds, by
-changing `autoPauseTimeoutSeconds` in the Docker Desktop `settings.json` file:
+changing `autoPauseTimeoutSeconds` in the Docker Desktop `settings-store.json` file (or `settings.json` for Docker Desktop versions 4.34 and earlier):
- - Mac: `~/Library/Group Containers/group.com.docker/settings.json`
- - Windows: `C:\Users\[USERNAME]\AppData\Roaming\Docker\settings.json`
- - Linux: `~/.docker/desktop/settings.json`
+ - Mac: `~/Library/Group Containers/group.com.docker/settings-store.json`
+ - Windows: `C:\Users\[USERNAME]\AppData\Roaming\Docker\settings-store.json`
+ - Linux: `~/.docker/desktop/settings-store.json`
There's no need to restart Docker Desktop after reconfiguring.
diff --git a/content/manuals/extensions/settings-feedback.md b/content/manuals/extensions/settings-feedback.md
index d233d19e5d29..c430289f7ae6 100644
--- a/content/manuals/extensions/settings-feedback.md
+++ b/content/manuals/extensions/settings-feedback.md
@@ -21,10 +21,10 @@ Docker Extensions is switched on by default. To change your settings:
>**Note**
>
-> If you are an [organization owner](/manuals/admin/organization/manage-a-team.md#organization-owner), you can turn off extensions for your users. Open the `settings.json` file, and set `"extensionsEnabled"` to `false`.
-> The `settings.json` file is located at:
-> - `~/Library/Group Containers/group.com.docker/settings.json` on Mac
-> - `C:\Users\[USERNAME]\AppData\Roaming\Docker\settings.json` on Windows
+> If you are an [organization owner](/manuals/admin/organization/manage-a-team.md#organization-owner), you can turn off extensions for your users. Open the `settings-store.json` file, and set `"extensionsEnabled"` to `false`.
+> The `settings-store.json` file (or `settings.json` for Docker Desktop versions 4.34 and earlier) is located at:
+> - `~/Library/Group Containers/group.com.docker/settings-store.json` on Mac
+> - `C:\Users\[USERNAME]\AppData\Roaming\Docker\settings-store.json` on Windows
>
> This can also be done with [Hardened Docker Desktop](/manuals/security/for-admins/hardened-desktop/_index.md)
diff --git a/content/manuals/security/for-admins/hardened-desktop/settings-management/_index.md b/content/manuals/security/for-admins/hardened-desktop/settings-management/_index.md
index 65f45d4984cb..03cd8324bf10 100644
--- a/content/manuals/security/for-admins/hardened-desktop/settings-management/_index.md
+++ b/content/manuals/security/for-admins/hardened-desktop/settings-management/_index.md
@@ -76,7 +76,7 @@ Docker doesn't automatically mandate that developers re-launch and re-authentica
### What do developers see when the settings are enforced?
-Any settings that are enforced, are grayed out in Docker Desktop and the user is unable to edit them, either via the Docker Desktop UI, CLI, or the `settings.json` file. In addition, if Enhanced Container Isolation is enforced, developers can't use privileged containers or similar techniques to modify enforced settings within the Docker Desktop Linux VM, for example, reconfigure proxy and networking of reconfigure Docker Engine.
+Any settings that are enforced, are grayed out in Docker Desktop and the user is unable to edit them, either via the Docker Desktop UI, CLI, or the `settings-store.json` file (or `settings.json` for Docker Desktop versions 4.34 and earlier). In addition, if Enhanced Container Isolation is enforced, developers can't use privileged containers or similar techniques to modify enforced settings within the Docker Desktop Linux VM, for example, reconfigure proxy and networking of reconfigure Docker Engine.

diff --git a/content/manuals/security/for-admins/hardened-desktop/settings-management/configure.md b/content/manuals/security/for-admins/hardened-desktop/settings-management/configure.md
index ad5feca71ca5..01e34698c583 100644
--- a/content/manuals/security/for-admins/hardened-desktop/settings-management/configure.md
+++ b/content/manuals/security/for-admins/hardened-desktop/settings-management/configure.md
@@ -59,7 +59,7 @@ If `locked: true`, users aren't able to edit this setting from Docker Desktop or
If `locked: false`, it's similar to setting a factory default in that:
- For new installs, `locked: false` pre-populates the relevant settings in the Docker Desktop UI, but users are able to modify it.
-- If Docker Desktop is already installed and being used, `locked: false` is ignored. This is because existing users of Docker Desktop may have already updated a setting, which in turn will have been written to the relevant config file, for example the `settings.json` or `daemon.json`. In these instances, the user's preferences are respected and we don't alter these values. These can be controlled by the admin by setting `locked: true`.
+- If Docker Desktop is already installed and being used, `locked: false` is ignored. This is because existing users of Docker Desktop may have already updated a setting, which in turn will have been written to the relevant config file, for example the `settings-store.json` (or `settings.json` for Docker Desktop versions 4.34 and earlier) or `daemon.json`. In these instances, the user's preferences are respected and we don't alter these values. These can be controlled by the admin by setting `locked: true`.
The following `admin-settings.json` code and table provides an example of the required syntax and descriptions for parameters and values:
From aa805b4c91af1afe3b8e5b7949f39007d739b5c8 Mon Sep 17 00:00:00 2001
From: Lorena Rangel
Date: Thu, 24 Oct 2024 18:17:21 +0300
Subject: [PATCH 10/13] add Docker Desktop 4.35.0 release notes (#20909)
## Description
Docker Desktop 4.35.0 release notes
---------
Signed-off-by: Lorena Rangel
Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
Co-authored-by: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>
---
content/manuals/desktop/release-notes.md | 77 ++++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/content/manuals/desktop/release-notes.md b/content/manuals/desktop/release-notes.md
index 2b30615ca6ca..f01b1a08aec9 100644
--- a/content/manuals/desktop/release-notes.md
+++ b/content/manuals/desktop/release-notes.md
@@ -23,6 +23,83 @@ Docker Desktop versions older than 6 months from the latest release are not avai
Take a look at the [Docker Public Roadmap](https://github.com/orgs/docker/projects/51/views/1?filterQuery=) to see what's coming next.
+## 4.35.0
+
+{{< release-date date="2024-10-24" >}}
+
+{{< desktop-install-v2 all=true beta_win_arm=true version="4.35.0" build_path="/172508/" >}}
+
+### New
+
+- Support for [Docker Desktop on Red Hat Enterprise Linux](/manuals/desktop/install/linux/rhel.md) is now generally available.
+- Volume Backup and Share is now generally available and can be found in the **Volumes** view.
+- Terminal support within Docker Desktop using system shells is now generally available.
+- containerd image store:
+ - Improved output of `docker image inspect` to account for multi-platform images.
+ - Support multi-platform images via enabling users to pick a specific platform in `docker history`.
+- Beta release of Docker VMM - the more performant alternative to Apple Virtualization Framework on macOS (requires Apple Silicon and macOS 12.5 or later).
+
+### Upgrades
+
+- [containerd v1.7.21](https://github.com/containerd/containerd/releases/tag/v1.7.21)
+- [Docker Buildx v0.17.1](https://github.com/docker/buildx/releases/tag/v0.17.1)
+- [Docker Compose v2.29.7](https://github.com/docker/compose/releases/tag/v2.29.7)
+- [Docker Engine v27.3.1](https://docs.docker.com/engine/release-notes/27.3/#2731)
+- [Docker Scout CLI v1.14.0](https://github.com/docker/scout-cli/releases/tag/v1.14.0)
+- Docker Debug `v0.0.37`
+- Linux kernel `v6.10.9`
+
+### Bug fixes and enhancements
+
+#### For all platforms
+
+- Fixed a bug where proxy settings in `daemon.json` would override proxies set in Docker Desktop settings.
+- Fixed a bug where some Docker subnet ranges were not able to be used.
+- Removed [docker-index](https://github.com/docker/index-cli-plugin) as it is now deprecated, you can use `docker scout cves fs://` instead.
+- Fixed a bug where images couldn't be sorted or filtered by tag. Fixes [docker/for-win#14297](https://github.com/docker/for-win/issues/14297).
+- Fixed a bug where the `docker` CLI did not work as expected when the `registry.json` file was malformed.
+- Fixed a bug where the **Push to Docker Hub** action in the **Images** view would result in an `invalid tag format` error. Fixes [docker/for-win#14258](https://github.com/docker/for-win/issues/14258).
+- Fixed an issue where Docker Desktop startup failed when ICMPv6 setup was not successful.
+- Added drivers that allow USB/IP to work.
+- Fixed a bug in Enhanced Container Isolation (ECI) [Docker socket mount permissions for derived images](/manuals/security/for-admins/hardened-desktop/enhanced-container-isolation/config.md) where it was incorrectly denying Docker socket mounts for some images when Docker Desktop uses the containerd image store.
+- Enable `NFT_NUMGEN`, `NFT_FIB_IPV4` and `NFT_FIB_IPV6` kernel modules.
+- Build UI:
+ - Highlight build check warnings in the **Completed builds** list.
+ - Improve visualization for the build time charts.
+ - Image tags added to **Build results** section under the **Info** tab.
+- Improved efficiency of host-side disk utilization for fresh installations on Mac and Linux.
+- Fixed a bug that prevented the Sign in enforcement popup to be triggered when token expires.
+- Fixed a bug where containers would not be displayed in the GUI immediately after signing in when using [enforced sign-in](/manuals/security/for-admins/enforce-sign-in/_index.md).
+- `settings.json` has been renamed to `settings-store.json`
+
+#### For Mac
+
+- Fixed a bug where auto-start containers could be misconfigured after changing filesharing type in settings.
+- Fixed a bug that would cause `~/.docker/cli-plugins` to not be populated on start-up.
+- Fixed a bug that prevented php composer or postgres to start as non root user. Fixes [docker/for-mac#7415](https://github.com/docker/for-mac/issues/7415).
+- Fixed a bug that could cause file changed on the host to appear truncated. Fixes [docker/for-mac#7438](https://github.com/docker/for-mac/issues/7438).
+
+#### For Windows
+
+- New installations of Docker Desktop for Windows now require a Windows version of 19045 or later.
+- Fixed an issue that caused a start failure if IPv6 is disabled either in the kernel config or via the kernel command-line in WSL. Fixes [docker/for-win#14240](https://github.com/docker/for-win/issues/14240)
+- Fixed the **Clean / Purge data** button on Windows. Fixes [docker/for-win#12650](https://github.com/docker/for-win/issues/14308).
+- Disk usage statistics is now displayed in the Dashboard footer installations.
+- Improved recovery for WSL distribution issues.
+
+#### For Linux
+
+- Ubuntu 24.04 is now supported on Docker Desktop.
+
+### Known issues
+
+#### For Mac
+- Since version 4.34.0, the toggle "Allow privileged port mapping" in the Advanced settings does not work. For more information, see [docker/for-mac#7460](https://github.com/docker/for-mac/issues/7460).
+
+#### For Windows
+
+- Users with versions 4.14.0 and earlier could encounter issues using the in-app update. To update to the latest version, download and install the latest Docker Desktop from this page.
+
## 4.34.3
{{< release-date date="2024-10-09" >}}
From cfd326bfa0456ebb86806974dc524bbab7ec4fae Mon Sep 17 00:00:00 2001
From: David Karlsson <35727626+dvdksn@users.noreply.github.com>
Date: Thu, 24 Oct 2024 17:19:03 +0200
Subject: [PATCH 11/13] [DNM] scout: create exceptions in docker desktop
(#20797)
Docker Desktop part of #20581, for 4.35
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
---
content/manuals/scout/explore/exceptions.md | 27 ++++++++----
.../scout/how-tos/create-exceptions-gui.md | 41 ++++++++++++++-----
2 files changed, 51 insertions(+), 17 deletions(-)
diff --git a/content/manuals/scout/explore/exceptions.md b/content/manuals/scout/explore/exceptions.md
index f5d45cb03936..a654c20d3ac8 100644
--- a/content/manuals/scout/explore/exceptions.md
+++ b/content/manuals/scout/explore/exceptions.md
@@ -25,15 +25,14 @@ then that CVE is excluded from analysis results.
To create an exception for an image, you can:
- Create an exception in the [GUI](/manuals/scout/how-tos/create-exceptions-gui.md) of
- Docker Scout Dashboard.
-
+ Docker Scout Dashboard or Docker Desktop.
- Create a [VEX](/manuals/scout/how-tos/create-exceptions-vex.md) document and attach
it to the image.
-The recommended way to create exceptions is to use Docker Scout Dashboard. The
-GUI provides a user-friendly interface for creating exceptions. It also lets
-you create exceptions for multiple images, or your entire organization, all at
-once.
+The recommended way to create exceptions is to use Docker Scout Dashboard or
+Docker Desktop. The GUI provides a user-friendly interface for creating
+exceptions. It also lets you create exceptions for multiple images, or your
+entire organization, all at once.
## View exceptions
@@ -46,7 +45,7 @@ To view exceptions for images, you need to have the appropriate permissions.
are visible to anyone who can pull the image, since the VEX document is
stored in the image manifest or on filesystem of the image.
-### View exceptions in Docker Scout Dashboard
+### View exceptions in Docker Scout Dashboard or Docker Desktop
The [**Exceptions** tab](https://scout.docker.com/reports/vulnerabilities/exceptions)
of the Vulnerabilities page in Docker Scout Dashboard lists all exceptions for
@@ -59,10 +58,24 @@ selecting the action menu lets you edit or remove the exception.
To view all exceptions for a specific image tag:
+{{< tabs >}}
+{{< tab name="Docker Scout Dashboard" >}}
+
1. Go to the [Images page](https://scout.docker.com/reports/images).
2. Select the tag that you want to inspect.
3. Open the **Exceptions** tab.
+{{< /tab >}}
+{{< tab name="Docker Desktop" >}}
+
+1. Open the **Images** view in Docker Desktop.
+2. Open the **Hub** tab.
+3. Select the tag you want to inspect.
+4. Open the **Exceptions** tab.
+
+{{< /tab >}}
+{{< /tabs >}}
+
### View exceptions in the CLI
{{% experimental %}}
diff --git a/content/manuals/scout/how-tos/create-exceptions-gui.md b/content/manuals/scout/how-tos/create-exceptions-gui.md
index 8d80ab26fbbf..52567c7ef21d 100644
--- a/content/manuals/scout/how-tos/create-exceptions-gui.md
+++ b/content/manuals/scout/how-tos/create-exceptions-gui.md
@@ -1,24 +1,27 @@
---
title: Create an exception using the GUI
-description: Create an exception for a vulnerability in an image using the Docker Scout Dashboard.
-keywords: Docker, Docker Scout, vulnerability, exception, create, GUI
+description: Create an exception for a vulnerability in an image using the Docker Scout Dashboard or Docker Desktop.
+keywords: Docker, Docker Scout, Docker Desktop, vulnerability, exception, create, GUI
---
-The Docker Scout Dashboard provides a user-friendly interface for creating
-[exceptions](/manuals/scout/explore/exceptions.md) for vulnerabilities found in
-container images. Exceptions let you acknowledge accepted risks or address
-false positives in image analysis.
+The Docker Scout Dashboard and Docker Desktop provide a user-friendly interface
+for creating [exceptions](/manuals/scout/explore/exceptions.md) for
+vulnerabilities found in container images. Exceptions let you acknowledge
+accepted risks or address false positives in image analysis.
## Prerequisites
-To create an in the Docker Scout Dashboard, you need a Docker account with
-**Editor** or **Owner** permissions for the Docker organization that owns the
-image.
+To create an in the Docker Scout Dashboard or Docker Desktop, you need a Docker
+account with **Editor** or **Owner** permissions for the Docker organization
+that owns the image.
## Steps
To create an exception for a vulnerability in an image using the Docker Scout
-Dashboard:
+Dashboard or Docker Desktop:
+
+{{< tabs >}}
+{{< tab name="Docker Scout Dashboard" >}}
1. Go to the [Images page](https://scout.docker.com/reports/images).
2. Select the image tag that contains the vulnerability you want to create an
@@ -76,3 +79,21 @@ tab of the [Vulnerabilities page](https://scout.docker.com/reports/vulnerabiliti
in the Docker Scout Dashboard.
{{% /create_panel.inline %}}
+
+{{< /tab >}}
+{{< tab name="Docker Desktop" >}}
+
+1. Open the **Images** view in Docker Desktop.
+2. Open the **Hub** tab.
+3. Select the image tag that contains the vulnerability you want to create an
+ exception for.
+4. Select the layer that contains the vulnerability you want to create an
+ exception for.
+5. In the **Vulnerabilities** tab, find the vulnerability you want to create an
+ exception for.
+6. Select the **Create exception** button next to the vulnerability.
+
+{{% create_panel.inline / %}}
+
+{{< /tab >}}
+{{< /tabs >}}
From 18b8d8acd13bdbf7d2f70129b61f15233cd01b1a Mon Sep 17 00:00:00 2001
From: David Karlsson <35727626+dvdksn@users.noreply.github.com>
Date: Thu, 24 Oct 2024 17:20:12 +0200
Subject: [PATCH 12/13] scout: view health scores in Docker Desktop (#20991)
View health scores for images in Docker Desktop
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
---
content/manuals/desktop/use-desktop/images.md | 4 +++-
.../manuals/scout/images/score-badges-dd.png | Bin 0 -> 56140 bytes
content/manuals/scout/policy/scores.md | 21 +++++++++++++++++-
3 files changed, 23 insertions(+), 2 deletions(-)
create mode 100644 content/manuals/scout/images/score-badges-dd.png
diff --git a/content/manuals/desktop/use-desktop/images.md b/content/manuals/desktop/use-desktop/images.md
index 27ddd9fadd80..7fbfe2c0c98a 100644
--- a/content/manuals/desktop/use-desktop/images.md
+++ b/content/manuals/desktop/use-desktop/images.md
@@ -95,7 +95,9 @@ When signed in, it shows you a list of images in Docker Hub organizations and re
Select an organization from the drop-down to view a list of repositories for that organization.
-If you have enabled [Docker Scout](../../scout/_index.md) on the repositories, image analysis results appear next to the image tags.
+If you have enabled [Docker Scout](../../scout/_index.md) on the repositories,
+image analysis results (and [health scores](/manuals/scout/policy/scores.md) if
+your Docker organization is eligible) appear next to the image tags.
Hovering over an image tag reveals two options:
diff --git a/content/manuals/scout/images/score-badges-dd.png b/content/manuals/scout/images/score-badges-dd.png
new file mode 100644
index 0000000000000000000000000000000000000000..f33374c1ec933f7159d8849c95a2e44b2ca0a509
GIT binary patch
literal 56140
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