Skip to content

Commit bf2ad21

Browse files
authored
Merge pull request #21266 from docker/published-update
publish updates from main
2 parents 40378de + 8eb2dc2 commit bf2ad21

File tree

11 files changed

+112
-27
lines changed

11 files changed

+112
-27
lines changed

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
.github
33
.gitignore
44
.idea
5+
.hugo_build.lock
56
_releaser
67
CONTRIBUTING.md
78
Dockerfile

Dockerfile

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@ ARG GO_VERSION=1.23
88
# HTMLTEST_VERSION sets the wjdp/htmltest version for HTML testing
99
ARG HTMLTEST_VERSION=0.17.0
1010
# HUGO_VERSION sets the version of Hugo to build the site with
11-
ARG HUGO_VERSION=0.136.2
11+
ARG HUGO_VERSION=0.136.3
1212

1313
# build-base is the base stage used for building the site
1414
FROM ghcr.io/gohugoio/hugo:v${HUGO_VERSION} AS build-base
15-
USER root
1615
ENV NODE_ENV="production"
1716
RUN --mount=source=package.json,target=package.json \
1817
--mount=source=package-lock.json,target=package-lock.json \
@@ -26,8 +25,7 @@ FROM build-base AS build
2625
ARG HUGO_ENV="development"
2726
# DOCS_URL sets the base URL for the site
2827
ARG DOCS_URL="https://docs.docker.com"
29-
RUN --mount=type=cache,target=/cache \
30-
hugo --gc --minify -d /out -e $HUGO_ENV -b $DOCS_URL
28+
RUN hugo --gc --minify -e $HUGO_ENV -b $DOCS_URL
3129

3230
# lint lints markdown files
3331
FROM davidanson/markdownlint-cli2:v0.14.0 AS lint
@@ -41,7 +39,7 @@ RUN --mount=type=bind,target=. \
4139
# test validates HTML output and checks for broken links
4240
FROM wjdp/htmltest:v${HTMLTEST_VERSION} AS test
4341
WORKDIR /test
44-
COPY --from=build /out ./public
42+
COPY --from=build /project/public ./public
4543
ADD .htmltest.yml .htmltest.yml
4644
RUN htmltest
4745

@@ -76,12 +74,12 @@ ARG UPSTREAM_REPO
7674
ARG UPSTREAM_COMMIT
7775
# HUGO_MODULE_REPLACEMENTS is the replacement module for the upstream project
7876
ENV HUGO_MODULE_REPLACEMENTS="github.com/${UPSTREAM_MODULE_NAME} -> github.com/${UPSTREAM_REPO} ${UPSTREAM_COMMIT}"
79-
RUN hugo --ignoreVendorPaths "github.com/${UPSTREAM_MODULE_NAME}" -d /out
77+
RUN hugo --ignoreVendorPaths "github.com/${UPSTREAM_MODULE_NAME}"
8078

8179
# validate-upstream validates HTML output for upstream builds
8280
FROM wjdp/htmltest:v${HTMLTEST_VERSION} AS validate-upstream
8381
WORKDIR /test
84-
COPY --from=build-upstream /out ./public
82+
COPY --from=build-upstream /project/public ./public
8583
ADD .htmltest.yml .htmltest.yml
8684
RUN htmltest
8785

@@ -96,9 +94,9 @@ EOT
9694

9795
# path-warnings checks for duplicate target paths
9896
FROM build-base AS path-warnings
99-
RUN hugo --printPathWarnings > /path-warnings.txt
97+
RUN hugo --printPathWarnings > ./path-warnings.txt
10098
RUN <<EOT
101-
DUPLICATE_TARGETS=$(grep "Duplicate target paths" /path-warnings.txt)
99+
DUPLICATE_TARGETS=$(grep "Duplicate target paths" ./path-warnings.txt)
102100
if [ ! -z "$DUPLICATE_TARGETS" ]; then
103101
echo "$DUPLICATE_TARGETS"
104102
echo "You probably have a duplicate alias defined. Please check your aliases."
@@ -109,7 +107,7 @@ EOT
109107
# pagefind installs the Pagefind runtime
110108
FROM node:alpine${ALPINE_VERSION} AS pagefind
111109
ARG PAGEFIND_VERSION=1.1.1
112-
COPY --from=build /out ./public
110+
COPY --from=build /project/public ./public
113111
RUN --mount=type=bind,src=pagefind.yml,target=pagefind.yml \
114112
npx pagefind@v${PAGEFIND_VERSION} --output-path "/pagefind"
115113

@@ -121,13 +119,13 @@ COPY --from=pagefind /pagefind .
121119
FROM alpine:${ALPINE_VERSION} AS test-go-redirects
122120
WORKDIR /work
123121
RUN apk add yq
124-
COPY --from=build /out ./public
122+
COPY --from=build /project/public ./public
125123
RUN --mount=type=bind,target=. <<"EOT"
126124
set -ex
127125
./scripts/test_go_redirects.sh
128126
EOT
129127

130128
# release is an empty scratch image with only compiled assets
131129
FROM scratch AS release
132-
COPY --from=build /out /
130+
COPY --from=build /project/public /
133131
COPY --from=pagefind /pagefind /pagefind
Lines changed: 4 additions & 0 deletions
Loading

content/guides/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ params:
77
layout: landing
88
aliases:
99
- /learning-paths/
10+
- /language/
1011
---
1112

1213
Explore our collection of guides to learn how Docker can optimize your

content/manuals/desktop/settings.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ aliases:
88
- /desktop/settings/mac/
99
- /desktop/settings/windows/
1010
- /desktop/settings/linux/
11-
weight: 150
11+
weight: 160
1212
---
1313

1414
To navigate to **Settings** either:
@@ -66,6 +66,8 @@ If you choose the integrated terminal, you can run commands in a running contain
6666
> Turn this setting on to make Docker Desktop run faster.
6767
- 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.
6868

69+
For more information, see [Virtual Machine Manager](/manuals/desktop/vmm.md).
70+
6971
- {{< 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.
7072
> [!TIP]
7173
>

content/manuals/desktop/vmm.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
title: Virtual Machine Manager for Docker Desktop on Mac
3+
linkTitle: Virtual Machine Manager
4+
params:
5+
sidebar:
6+
badge:
7+
color: green
8+
text: New
9+
keywords: virtualization software, resource allocation, mac, docker desktop, vm monitoring, vm performance, apple silicon
10+
description: Discover Docker Desktop for Mac's Virtual Machine Manager (VMM) options, including the new Docker VMM for Apple Silicon, offering enhanced performance and efficiency
11+
weight: 150
12+
---
13+
14+
The Virtual Machine Manager (VMM) in Docker Desktop for Mac is responsible for creating and managing the virtual machine used to run containers. Depending on your system architecture and performance needs, you can choose from multiple VMM options in Docker Desktop's [settings](/manuals/desktop/settings.md#general). This page provides an overview of the available options.
15+
16+
## Docker VMM (Beta)
17+
18+
Docker VMM is a new, container-optimized hypervisor introduced in Docker Desktop 4.35 and available on Apple Silicon Macs only. Its enhanced speed and resource efficiency makes it an ideal choice for optimizing your workflow.
19+
20+
Docker VMM brings exciting advancements specifically tailored for Apple Silicon machines. By optimizing both the Linux kernel and hypervisor layers, Docker VMM delivers significant performance enhancements across common developer tasks.
21+
22+
Some key performance enhancements provided by Docker VMM include:
23+
- Faster I/O operations: With a cold cache, iterating over a large shared filesystem with `find` is 2x faster than when the Apple Virtualization Framework is used.
24+
- Improved caching: With a warm cache, performance can improve by as much as 25x, even surpassing native Mac operations.
25+
26+
These improvements directly impact developers who rely on frequent file access and overall system responsiveness during containerized development. Docker VMM marks a significant leap in speed, enabling smoother workflows and faster iteration cycles.
27+
28+
### Known issues
29+
30+
As Docker VMM is still in Beta, there are a few known limitations:
31+
32+
- Docker VMM does not currently support Rosetta, so emulation of amd64 architectures is slow. Docker is exploring potential solutions.
33+
- Certain databases, like MongoDB and Cassandra, may fail when using virtiofs with Docker VMM. This issue is expected to be resolved in a future release.
34+
35+
## Apple Virtualization Framework
36+
37+
The Apple Virtualization Framework is a stable and well-established option for managing virtual machines on Mac. It has been a reliable choice for many Mac users over the years. This framework is best suited for developers who prefer a proven solution with solid performance and broad compatibility.
38+
39+
## QEMU (Legacy) for Apple Silicon
40+
41+
> [!NOTE]
42+
>
43+
> QEMU will be deprecated in a future release.
44+
45+
QEMU is a legacy virtualization option for Apple Silicon Macs, primarily supported for older use cases.
46+
47+
Docker recommends transitioning to newer alternatives, such as Docker VMM or the Apple Virtualization Framework, as they offer superior performance and ongoing support. Docker VMM, in particular, offers substantial speed improvements and a more efficient development environment, making it a compelling choice for developers working with Apple Silicon.
48+
49+
Note that this is not related to using QEMU to emulate non-native architectures in [multi-platform builds](/manuals/build/building/multi-platform.md#qemu).
50+
51+
## HyperKit (Legacy) for Intel-based Macs
52+
53+
> [!NOTE]
54+
>
55+
> HyperKit will be deprecated in a future release.
56+
57+
HyperKit is another legacy virtualization option, specifically for Intel-based Macs. Like QEMU, it is still available but considered deprecated. Docker recommends switching to modern alternatives for better performance and to future-proof your setup.

content/reference/compose-file/services.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1221,7 +1221,10 @@ There is a performance penalty for applications that swap memory to disk often.
12211221

12221222
- `none`: Turns off all container networking.
12231223
- `host`: Gives the container raw access to the host's network interface.
1224-
- `service:{name}`: Gives the containers access to the specified service only. For more information, see [Container networks](/manuals/engine/network/_index.md#container-networks).
1224+
- `service:{name}`: Gives the container access to the specified container by referring to its service name.
1225+
- `container:{name}`: Gives the container access to the specified container by referring to its container ID.
1226+
1227+
For more information container networks, see the [Docker Engine documentation](/manuals/engine/network/_index.md#container-networks).
12251228

12261229
```yml
12271230
network_mode: "host"

hugo_stats.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"Docker-Compose",
4242
"Docker-Desktop",
4343
"Docker-Hub",
44+
"Docker-Scout-Dashboard",
4445
"Download",
4546
"Editor-or-IDE",
4647
"Entra-ID",
@@ -86,6 +87,7 @@
8687
"Node",
8788
"Non-compliant",
8889
"Okta",
90+
"Okta-SAML",
8991
"Old-Dockerfile",
9092
"PHP",
9193
"PowerShell",
@@ -469,6 +471,7 @@
469471
"self-start",
470472
"shadow",
471473
"shadow-lg",
474+
"sm:block",
472475
"sm:flex",
473476
"sm:flex-row",
474477
"sm:hidden",
@@ -479,7 +482,6 @@
479482
"space-y-4",
480483
"sticky",
481484
"svg-container",
482-
"svg-icon",
483485
"syntax-light",
484486
"systemd-networkd",
485487
"text-2xl",

layouts/partials/footer.html

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,33 @@
6262
>Legal</a>
6363
</div>
6464
</div>
65-
<div>
65+
<div class="flex justify-between items-center">
6666
<button type="button" id="ot-sdk-btn" class="ot-sdk-show-settings">
6767
Cookies Settings
6868
</button>
69+
<div class="flex items-center gap-2">
70+
<span>Theme:</span>
71+
<button
72+
aria-label="Theme switch"
73+
id="theme-switch"
74+
class="rounded bg-blue-light px-4 py-1 text-white transition
75+
hover:bg-blue-light-400 dark:bg-blue-dark-400
76+
dark:hover:bg-blue-dark"
77+
x-data="{ theme: localStorage.getItem('theme-preference') }"
78+
x-init="$watch('theme', value => {
79+
localStorage.setItem('theme-preference', value);
80+
document.firstElementChild.className = value;
81+
})"
82+
@click="theme = (theme === 'dark' ? 'light' : 'dark')"
83+
>
84+
<span class="icon-svg icon-sm dark:hidden"
85+
>Light {{ partialCached "icon" "light_mode" "light_mode" }}</span
86+
>
87+
<span class="icon-svg icon-sm hidden dark:block"
88+
>Dark {{ partialCached "icon" "dark_mode" "dark_mode" }}</span
89+
>
90+
</button>
91+
</div>
6992
</div>
7093
</div>
7194
</div>

layouts/partials/header.html

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@
1010
<div>
1111
{{/* main logo */}}
1212
<a title="Docker Docs home page" href="{{ site.BaseURL }}">
13-
<div>
13+
<div class="hidden sm:block">
1414
{{- (resources.Get "images/docker-docs-white.svg").Content | safe.HTML -}}
1515
</div>
16+
<div class="block sm:hidden">
17+
{{- (resources.Get "images/docker-docs-white-condensed.svg").Content | safe.HTML -}}
18+
</div>
1619
</a>
1720
</div>
1821
<nav class="mt-1 hidden md:block">
@@ -37,15 +40,6 @@
3740
<span>Ask&nbsp;AI</span>
3841
<img src="{{ (resources.Get "images/ai-stars.svg").Permalink }}" alt="AI Stars" />
3942
</button>
40-
<button aria-label="Theme switch" id="theme-switch" class="svg-icon"
41-
x-data="{ theme: localStorage.getItem('theme-preference') }" x-init="$watch('theme', value => {
42-
localStorage.setItem('theme-preference', value);
43-
document.firstElementChild.className = value;
44-
})" @click="theme = (theme === 'dark' ? 'light' : 'dark')">
45-
<span class="icon-svg dark:hidden">{{ partialCached "icon" "light_mode" "light_mode"}}</span>
46-
<span class="icon-svg hidden dark:block">{{ partialCached "icon" "dark_mode" "dark_mode"}}</span>
47-
</button>
4843
</div>
4944
</div>
50-
5145
</header>

0 commit comments

Comments
 (0)