Skip to content

Commit 477816c

Browse files
authored
Merge pull request #21450 from docker/published-update
publish updates from main
2 parents 5e07ea5 + 53f58c9 commit 477816c

File tree

12 files changed

+208
-38
lines changed

12 files changed

+208
-38
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
ARG ALPINE_VERSION=3.20
55
ARG GO_VERSION=1.23
66
ARG HTMLTEST_VERSION=0.17.0
7-
ARG HUGO_VERSION=0.138.0
7+
ARG HUGO_VERSION=0.139.0
88
ARG NODE_VERSION=22
99
ARG PAGEFIND_VERSION=1.1.1
1010

content/manuals/compose/gettingstarted.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Make sure you have:
5959
@app.route('/')
6060
def hello():
6161
count = get_hit_count()
62-
return 'Hello World! I have been seen {} times.\n'.format(count)
62+
return f'Hello World! I have been seen {count} times.\n'
6363
```
6464

6565
In this example, `redis` is the hostname of the redis container on the
@@ -273,7 +273,7 @@ To see Compose Watch in action:
273273
message to `Hello from Docker!`:
274274

275275
```python
276-
return 'Hello from Docker! I have been seen {} times.\n'.format(count)
276+
return f'Hello from Docker! I have been seen {count} times.\n'
277277
```
278278

279279
2. Refresh the app in your browser. The greeting should be updated, and the

content/manuals/desktop/release-notes.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,60 @@ Docker Desktop versions older than 6 months from the latest release are not avai
2323

2424
Take a look at the [Docker Public Roadmap](https://github.com/orgs/docker/projects/51/views/1?filterQuery=) to see what's coming next.
2525

26+
## 4.36.0
27+
28+
{{< release-date date="2024-11-18" >}}
29+
30+
{{< desktop-install-v2 all=true beta_win_arm=true version="4.36.0" build_path="/175267/" >}}
31+
32+
### New
33+
34+
- WSL2 is now faster, more reliable, and has enhanced security
35+
- Enhance Container Isolation (ECI) has been improved to support images with wildcard tags
36+
- Admins can now:
37+
- Allow any container to mount the Docker socket with ECI
38+
- Enforce sign-in with macOS configuration profiles (Early Access)
39+
- Enforce sign-in for more than one organization at a time (Early Access)
40+
- Deploy Docker Desktop for Mac in bulk with the PKG installer (Early Access)
41+
- Use Desktop Settings Management to manage and enforce defaults via admin.docker.com (Early Access)
42+
43+
### Upgrades
44+
45+
- [Docker Buildx v0.18.0](https://github.com/docker/buildx/releases/tag/v0.18.0)
46+
- [Docker Compose v2.30.3](https://github.com/docker/compose/releases/tag/v2.30.3)
47+
- [Kubernetes v1.30.2](https://github.com/kubernetes/kubernetes/releases/tag/v1.30.5)
48+
- [NVIDIA Container Toolkit v1.17.0](https://github.com/NVIDIA/nvidia-container-toolkit/releases/tag/v1.17.0)
49+
- [Docker Scout CLI v1.15.0](https://github.com/docker/scout-cli/releases/tag/v1.15.0)
50+
- Docker Init v1.4.0
51+
- Linux kernel `v6.10.13`
52+
53+
### Bug fixes and enhancements
54+
55+
#### For all platforms
56+
57+
- Fixed a bug where the `docker events` command would not terminate after streaming the events.
58+
- Docker Init: Improved Dockerfile caching for PHP applications that don't use Docker Compose.
59+
- Synchronized file shares now respects the `filesharingAllowedDirectories` setting in `admin-settings.json`.
60+
- Fixed an issue where if Docker Desktop is configured to use a proxy, it fails to start due to an internal timeout while fetching authentication tokens.
61+
- Added a recovery banner to retry an update if the download failed.
62+
- Fixed an issue where if the `umask` is set to `577` it would cause `rpmbuild` failure. Fixes [docker/for-mac#6511](https://github.com/docker/for-mac/issues/6511).
63+
- Fixed a bug that caused ports open on the host to 18 for containers started with `--network=host`.
64+
- Fixed bind mount ownership for non-root containers. Fixes [docker/for-mac#6243](https://github.com/docker/for-mac/issues/6243).
65+
- Docker Desktop will not unpause automatically after a manual pause. The system will stay paused until you manually resume the Docker engine. This fixes a bug where other software would accidentally trigger a resume by running a CLI command in the background. Fixes [for-mac/#6908](https://github.com/docker/for-mac/issues/6908)
66+
67+
#### For Mac
68+
69+
- Fixed a bug in Docker VMM that prevented MySQL and other databases containers to start. Fixes reports from [docker/for-mac#7464](https://github.com/docker/for-mac/issues/7464).
70+
- The minimum memory requirement is now automatically adjusted for Docker VMM, improving the user experience and addressing reports from [docker/for-mac#7464](https://github.com/docker/for-mac/issues/7464), [docker/for-mac#7482](https://github.com/docker/for-mac/issues/7482).
71+
- Fixed a bug where the advanced option **Allowed privileged port mapping** was not working as expected. Fixes [docker/for-mac#7460](https://github.com/docker/for-mac/issues/7460).
72+
- Docker Desktop can now automatically configure shell completion scripts for zsh, bash and fish inside the install wizard and settings screen.
73+
- Fixed a bug where the in-app update would fail if Docker Desktop was installed by a non-admin user or if the current user was previously an administrator. Fixes [for-mac/#7403](https://github.com/docker/for-mac/issues/7403) and [for-mac/#6920](https://github.com/docker/for-mac/issues/6920)
74+
75+
#### For Windows
76+
77+
- Fixed a bug preventing UDP port 53 to be bound.
78+
- Fixed a bug where Windows daemon options were overwritten at startup.
79+
2680
## 4.35.1
2781

2882
{{< release-date date="2024-10-30" >}}

content/manuals/desktop/troubleshoot-and-support/troubleshoot/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ Spotlight Search.
285285

286286
To read the Docker app log messages, type `docker` in the Console window search bar and press Enter. Then select `ANY` to expand the drop-down list next to your `docker` search entry, and select `Process`.
287287

288-
![Mac Console search for Docker app](../images/console.png)
288+
![Mac Console search for Docker app](../../images/console.png)
289289

290290
You can use the Console Log Query to search logs, filter the results in various
291291
ways, and create reports.

content/manuals/desktop/troubleshoot-and-support/troubleshoot/topics.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ Your machine must have the following features for Docker Desktop to function cor
265265
Note that many Windows devices already have virtualization enabled, so this may not apply.
266266
4. Hypervisor enabled at Windows startup
267267

268-
![WSL 2 enabled](../images/wsl2-enabled.png)
268+
![WSL 2 enabled](../../images/wsl2-enabled.png)
269269

270270
#### Hyper-V
271271

@@ -277,7 +277,7 @@ On Windows 10 Pro or Enterprise, you can also use Hyper-V with the following fea
277277
Note that many Windows devices already have virtualization enabled, so this may not apply.
278278
3. Hypervisor enabled at Windows startup
279279

280-
![Hyper-V on Windows features](../images/hyperv-enabled.png)
280+
![Hyper-V on Windows features](../../images/hyperv-enabled.png)
281281

282282
Docker Desktop requires Hyper-V as well as the Hyper-V Module for Windows
283283
PowerShell to be installed and enabled. The Docker Desktop installer enables
@@ -295,7 +295,7 @@ In the subsequent screen, verify that Hyper-V is enabled.
295295
In addition to [Hyper-V](#hyper-v) or [WSL 2](/manuals/desktop/features/wsl/_index.md), virtualization must be turned on. Check the
296296
Performance tab on the Task Manager. Alternatively, you can type 'systeminfo' into your terminal. If you see 'Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed', then virtualization is enabled.
297297

298-
![Task Manager](../images/virtualization-enabled.png)
298+
![Task Manager](../../images/virtualization-enabled.png)
299299

300300
If you manually uninstall Hyper-V, WSL 2 or turn off virtualization,
301301
Docker Desktop cannot start.

content/manuals/security/for-admins/enforce-sign-in/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ security features](/manuals/security/for-admins/hardened-desktop/_index.md) for
1818

1919
There are multiple methods for enforcing sign-in, depending on your companies' set up and preferences:
2020
- [Registry key method (Windows only)](methods.md#registry-key-method-windows-only){{< badge color=green text="New" >}}
21+
- [Configuration profiles method (Mac only)](methods.md#configuration-profiles-method-mac-only){{< badge color=green text="New" >}}
2122
- [`.plist` method (Mac only)](methods.md#plist-method-mac-only){{< badge color=green text="New" >}}
2223
- [`registry.json` method (All)](methods.md#registryjson-method-all)
2324

content/manuals/security/for-admins/enforce-sign-in/methods.md

Lines changed: 95 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ To enforce sign-in for Docker Desktop on Windows, you can configure a registry k
2323
2. Create a multi-string value `allowedOrgs`.
2424
> [!IMPORTANT]
2525
>
26-
> Only one entry for `allowedOrgs` is currently supported. If you add more than one value, sign-in enforcement silently fails.
26+
> As of Docker Desktop version 4.36 and later, you can add more than one organization. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
2727
3. Use your organization's name, all lowercase as string data.
2828
4. Restart Docker Desktop.
2929
5. When Docker Desktop restarts, verify that the **Sign in required!** prompt appears.
@@ -43,11 +43,84 @@ The following example outlines how to deploy a registry key to enforce sign-in o
4343
3. Within the GPO, navigate to **Computer Configuration** and select **Preferences**.
4444
4. Select **Windows Settings** then **Registry**.
4545
5. To add the registry item, right-click on the **Registry** node, select **New**, and then **Registry Item**.
46-
6. Configure the new registry item to match the registry script you created, specifying the action as **Update**. Make sure you input the correct path, value name (`allowedOrgs`), and value data (your organization’s name).
46+
6. Configure the new registry item to match the registry script you created, specifying the action as **Update**. Make sure you input the correct path, value name (`allowedOrgs`), and value data (your organization names).
4747
7. Link the GPO to an Organizational Unit (OU) that contains the machines you want to apply this setting to.
4848
8. Test the GPO on a small set of machines first to ensure it behaves as expected. You can use the `gpupdate /force` command on a test machine to manually refresh its group policy settings and check the registry to confirm the changes.
4949
9. Once verified, you can proceed with broader deployment. Monitor the deployment to ensure the settings are applied correctly across the organization's computers.
5050

51+
## Configuration profiles method (Mac only)
52+
53+
> [!NOTE]
54+
>
55+
> The configuration profiles method is in [Early Access](/manuals/release-lifecycle.md)
56+
> and is available with Docker Desktop version 4.36 and later.
57+
58+
Configuration profiles are a feature of macOS that let you distribute
59+
configuration information to the Macs you manage. It is the safest method to
60+
enforce sign-in on macOS because the installed configuration profiles are
61+
protected by Apples' System Integrity Protection (SIP) and therefore can't be
62+
tampered with by the users.
63+
64+
1. Save the following XML file with the extension `.mobileconfig`, for example
65+
`docker.mobileconfig`:
66+
67+
```xml
68+
<?xml version="1.0" encoding="UTF-8"?>
69+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
70+
<plist version="1.0">
71+
<dict>
72+
<key>PayloadContent</key>
73+
<array>
74+
<dict>
75+
<key>PayloadType</key>
76+
<string>com.docker.config</string>
77+
<key>PayloadVersion</key>
78+
<integer>1</integer>
79+
<key>PayloadIdentifier</key>
80+
<string>com.docker.config</string>
81+
<key>PayloadUUID</key>
82+
<string>eed295b0-a650-40b0-9dda-90efb12be3c7</string>
83+
<key>PayloadDisplayName</key>
84+
<string>Docker Desktop Configuration</string>
85+
<key>PayloadDescription</key>
86+
<string>Configuration profile to manage Docker Desktop settings.</string>
87+
<key>PayloadOrganization</key>
88+
<string>Your Company Name</string>
89+
<key>allowedOrgs</key>
90+
<string>first_org;second_org</string>
91+
</dict>
92+
</array>
93+
<key>PayloadType</key>
94+
<string>Configuration</string>
95+
<key>PayloadVersion</key>
96+
<integer>1</integer>
97+
<key>PayloadIdentifier</key>
98+
<string>com.yourcompany.docker.config</string>
99+
<key>PayloadUUID</key>
100+
<string>0deedb64-7dc9-46e5-b6bf-69d64a9561ce</string>
101+
<key>PayloadDisplayName</key>
102+
<string>Docker Desktop Config Profile</string>
103+
<key>PayloadDescription</key>
104+
<string>Config profile to enforce Docker Desktop settings for allowed organizations.</string>
105+
<key>PayloadOrganization</key>
106+
<string>Your Company Name</string>
107+
</dict>
108+
</plist>
109+
```
110+
111+
2. Change the placeholders `com.yourcompany.docker.config` and `Your Company Name` to the name of your company.
112+
113+
3. Add your organization name. The names of the allowed organizations are stored in the `allowedOrgs`
114+
property. It can contain either the name of a single organization or a list of organization names,
115+
separated by a semicolon:
116+
117+
```xml
118+
<key>allowedOrgs</key>
119+
<string>first_org;second_org</string>
120+
```
121+
122+
4. Use a MDM solution to distribute your modified `.mobileconfig` file to your macOS clients.
123+
51124
## plist method (Mac only)
52125

53126
> [!NOTE]
@@ -66,14 +139,15 @@ To enforce sign-in for Docker Desktop on macOS, you can use a `plist` file that
66139
<dict>
67140
<key>allowedOrgs</key>
68141
<array>
69-
<string>myorg</string>
142+
<string>myorg1</string>
143+
<string>myorg2</string>
70144
</array>
71145
</dict>
72146
</plist>
73147
```
74148
> [!IMPORTANT]
75149
>
76-
> Only one entry for `allowedOrgs` is currently supported. If you add more than one value, sign-in enforcement silently fails.
150+
> As of Docker Desktop version 4.36 and later, you can add more than one organization. With Docker Desktop version 4.35 and earlier, sign-in enforcement silently fails if you add more than one organization.
77151
78152
3. Modify the file permissions to ensure the file cannot be edited by any non-administrator users.
79153
4. Restart Docker Desktop.
@@ -140,12 +214,12 @@ details, see [Manage members](/admin/organization/members/).
140214

141215
```json
142216
{
143-
"allowedOrgs": ["myorg"]
217+
"allowedOrgs": ["myorg1", "myorg2"]
144218
}
145219
```
146220
> [!IMPORTANT]
147221
>
148-
> Only one entry for `allowedOrgs` is currently supported. If you add more than one value, sign-in enforcement silently fails.
222+
> As of Docker Desktop version 4.36 and later, you can add more than one organization. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
149223

150224
4. Verify that sign-in is enforced.
151225

@@ -182,6 +256,9 @@ If you're using the Windows Command Prompt:
182256
```console
183257
C:\Users\Admin> "Docker Desktop Installer.exe" install --allowed-org=myorg
184258
```
259+
> [!IMPORTANT]
260+
>
261+
> As of Docker Desktop version 4.36 and later, you can add more than one organization to a single `registry.json` file. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
185262
186263
{{< /tab >}}
187264
{{< tab name="Mac" >}}
@@ -231,6 +308,10 @@ Path Owner Access
231308
registry.json BUILTIN\Administrators NT AUTHORITY\SYSTEM Allow FullControl...
232309
```
233310

311+
> [!IMPORTANT]
312+
>
313+
> As of Docker Desktop version 4.36 and later, you can add more than one organization to a single `registry.json` file. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
314+
234315
{{< /tab >}}
235316
{{< tab name="Mac" >}}
236317

@@ -264,6 +345,10 @@ $ sudo ls -l "/Library/Application Support/com.docker.docker/registry.json"
264345
-rw-r--r-- 1 root admin 26 Jul 27 22:01 /Library/Application Support/com.docker.docker/registry.json
265346
```
266347

348+
> [!IMPORTANT]
349+
>
350+
> As of Docker Desktop version 4.36 and later, you can add more than one organization to a single `registry.json` file. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
351+
267352
{{< /tab >}}
268353
{{< tab name="Linux" >}}
269354

@@ -297,6 +382,10 @@ $ sudo ls -l /usr/share/docker-desktop/registry/registry.json
297382
-rw-r--r-- 1 root root 26 Jul 27 22:01 /usr/share/docker-desktop/registry/registry.json
298383
```
299384

385+
> [!IMPORTANT]
386+
>
387+
> As of Docker Desktop version 4.36 and later, you can add more than one organization to a single `registry.json` file. With Docker Desktop version 4.35 and earlier, if you add more than one organization sign-in enforcement silently fails.
388+
300389
{{< /tab >}}
301390
{{< /tabs >}}
302391

content/manuals/security/for-admins/hardened-desktop/enhanced-container-isolation/config.md

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -195,13 +195,30 @@ A couple of caveats:
195195
from a repository). This is usually not a problem as the tools that need this
196196
feature (e.g., Paketo buildpacks) will do the pre-pull of the parent image.
197197

198-
* The `allowDerivedImages` setting applies to all images in the `imageList`
199-
specified with an explicit tag (e.g., `<name>:<tag>`). It does not apply to
200-
images specified using the tag wildcard (e.g., `<name>:*`) described in the
201-
prior section, because Docker Desktop needs to know the tag in order to
202-
perform ancestor-descendant image checks. Therefore, if you want Docker socket
203-
mounts to be allowed for images derived from a parent image in the
204-
`imageList`, make sure the parent image is listed with name and tag.
198+
* For Docker Desktop versions 4.34 and 4.35 only: The `allowDerivedImages` setting
199+
applies to all images in the `imageList` specified with an explicit tag (e.g.,
200+
`<name>:<tag>`). It does not apply to images specified using the tag wildcard
201+
(e.g., `<name>:*`) described in the prior section. In Docker Desktop 4.36 and
202+
later, this caveat no longer applies, meaning that the `allowDerivedImages`
203+
settings applies to images specified with or without a wildcard tag. This
204+
makes it easier to manage the ECI Docker socket image list.
205+
206+
### Allowing all containers to mount the Docker socket
207+
208+
In Docker Desktop version 4.36 and later, it's possible to configure the image
209+
list to allow any container to mount the Docker socket. You do this by adding
210+
`"*"` to the `imageList`:
211+
212+
```json
213+
"imageList": {
214+
"images": [
215+
"*"
216+
]
217+
}
218+
```
219+
220+
It is recommended that you use this only in scenarios where explicitly listing
221+
allowed container images is not flexible enough.
205222

206223
### Command list
207224

@@ -302,10 +319,13 @@ Whether to configure the list as an allow or deny list depends on the use case.
302319
this case, remove the local image and pull it again (e.g., `docker rm <image>`
303320
and `docker pull <image>`).
304321

305-
* It's not possible to allow Docker socket bind-mounts on local images (i.e., images that are not on
306-
a registry) unless they are [derived from an allowed image](#docker-socket-mount-permissions-for-derived-images).
307-
That's because Docker Desktop pulls the digests for the allowed images from the
308-
registry, and then uses that to compare against the local copy of the image.
322+
* It's not possible to allow Docker socket bind-mounts on containers using
323+
local-only images (i.e., images that are not on a registry) unless they are
324+
[derived from an allowed image](#docker-socket-mount-permissions-for-derived-images)
325+
or you've [allowed all containers to mount the Docker socket](#allowing-all-containers-to-mount-the-docker-socket).
326+
That is because Docker Desktop pulls the digests for the allowed images from
327+
the registry, and then uses that to compare against the local copy of the
328+
image.
309329

310330
* The `commandList` configuration applies to all containers that are allowed to
311331
bind-mount the Docker socket. Therefore it can't be configured differently per

hack/releaser/cloudfront-lambda-redirects.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@
33
exports.handler = (event, context, callback) => {
44
//console.log("event", JSON.stringify(event));
55
const request = event.Records[0].cf.request;
6-
const requestUrl = request.uri.replace(/\/$/, "")
6+
// Trim trailing slash and collapse redundant slashes
7+
const normalizedUri = request.uri.replace(/\/$/, "").replaceAll(/\/{2,}/g, "/")
78

89
const redirects = JSON.parse(`{{.RedirectsJSON}}`);
910
for (let key in redirects) {
1011
const redirectTarget = key.replace(/\/$/, "")
11-
if (redirectTarget !== requestUrl) {
12+
if (redirectTarget !== normalizedUri) {
1213
continue;
1314
}
14-
//console.log(`redirect: ${requestUrl} to ${redirects[key]}`);
15+
//console.log(`redirect: ${normalizedUri} to ${redirects[key]}`);
1516
const response = {
1617
status: '301',
1718
statusDescription: 'Moved Permanently',
@@ -52,5 +53,6 @@ exports.handler = (event, context, callback) => {
5253
return
5354
}
5455

56+
request.uri = normalizedUri
5557
callback(null, request);
5658
};

0 commit comments

Comments
 (0)