Skip to content

Commit b140f8b

Browse files
sarahsanders-dockerrobmrythaJeztahaevesdockerctalledo
authored
publish updates from main (#22606)
Automated pull request for publishing docs updates. --------- Signed-off-by: Rob Murray <[email protected]> Signed-off-by: Cesar Talledo <[email protected]> Co-authored-by: Rob Murray <[email protected]> Co-authored-by: Sebastiaan van Stijn <[email protected]> Co-authored-by: Allie Sadler <[email protected]> Co-authored-by: Sarah Sanders <[email protected]> Co-authored-by: Cesar Talledo <[email protected]>
2 parents acde2dc + 371f608 commit b140f8b

File tree

6 files changed

+166
-17
lines changed

6 files changed

+166
-17
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
Title: Docker Desktop in Microsoft Dev Box
3+
description: Learn about the benefits of and how to setup Docker Desktop in Microsoft Dev Box
4+
keywords: desktop, docker, windows, microsoft dev box
5+
---
6+
7+
Docker Desktop is available as a pre-configured image in the Microsoft Azure Marketplace for use with Microsoft Dev Box, allowing developers to quickly set up consistent development environments in the cloud.
8+
9+
Microsoft Dev Box provides cloud-based, pre-configured developer workstations that allow you to code, build, and test applications without configuring a local development environment. The Docker Desktop image for Microsoft Dev Box comes with Docker Desktop and its dependencies pre-installed, giving you a ready-to-use containerized development environment.
10+
11+
## Key benefits
12+
13+
- Pre-configured environment: Docker Desktop, WSL2, and other requirements come pre-installed and configured
14+
- Consistent development: Ensure all team members work with the same Docker environment
15+
- Powerful resources: Access more compute power and storage than might be available on local machines
16+
- State persistence: Dev Box maintains your state between sessions, similar to hibernating a local machine
17+
- Seamless licensing: Use your existing Docker subscription or purchase a new one directly through Azure Marketplace
18+
19+
## Setup
20+
21+
### Prerequisites
22+
23+
- An Azure subscription
24+
- Access to Microsoft Dev Box
25+
- A Docker subscription (Pro, Team, or Business). You can use Docker Desktop in Microsoft Dev Box with any of the following subscription options:
26+
- An existing or new Docker subscription
27+
- A new Docker subscription purchased through Azure Marketplace
28+
- A Docker Business subscription with SSO configured for your organization
29+
30+
### Set up Docker Desktop in Dev Box
31+
32+
1. Navigate to the [Docker Desktop for Microsoft Dev Box](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/dockerinc1694120899427.devbox_azuremachine?tab=Overview) listing in Azure Marketplace.
33+
2. Select **Get It Now** to add the virtual machine image to your subscription.
34+
3. Follow the Azure workflow to complete the setup.
35+
4. Use the image to create VMs, assign to Dev Centers, or create Dev Box Pools according to your organization's setup.
36+
37+
### Activate Docker Desktop
38+
39+
Once your Dev Box is provisioned with the Docker Desktop image:
40+
41+
1. Start your Dev Box instance.
42+
2. Launch Docker Desktop.
43+
3. Sign in with your Docker ID.
44+
45+
## Support
46+
47+
For issues related to:
48+
49+
- Docker Desktop configuration, usage, or licensing: Create a support ticket through [Docker Support](https://hub.docker.com/support).
50+
- Dev Box creation, Azure portal configuration, or networking: Contact Azure Support.
51+
52+
## Limitations
53+
54+
- Microsoft Dev Box is currently only available on Windows 10 and 11 (Linux VMs are not supported).
55+
- Performance may vary based on your Dev Box configuration and network conditions.

content/manuals/desktop/features/kubernetes.md

Lines changed: 98 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,6 @@ The following table summarizes this comparison.
8181
| Works with containerd image store | Yes | Yes |
8282
| Works with Docker image store | Yes | No |
8383

84-
### Additional settings
85-
86-
#### Viewing system containers
87-
88-
By default, Kubernetes system containers are hidden. To inspect these containers, enable **Show system containers (advanced)**.
89-
90-
You can now view the running Kubernetes containers with `docker ps` or in the Docker Desktop Dashboard.
91-
9284
## Using the kubectl command
9385

9486
Kubernetes integration automatically installs the Kubernetes CLI command
@@ -131,6 +123,104 @@ For more information about `kubectl`, see the
131123

132124
Kubernetes clusters are not automatically upgraded with Docker Desktop updates. To upgrade the cluster, you must manually select **Reset Kubernetes Cluster** in settings.
133125

126+
## Additional settings
127+
128+
### Viewing system containers
129+
130+
By default, Kubernetes system containers are hidden. To inspect these containers, enable **Show system containers (advanced)**.
131+
132+
You can now view the running Kubernetes containers with `docker ps` or in the Docker Desktop Dashboard.
133+
134+
### Configuring a custom image registry for Kubernetes control plane images
135+
136+
Docker Desktop uses containers to run the Kubernetes control plane. By default, Docker Desktop pulls
137+
the associated container images from Docker Hub. The images pulled depend on the [cluster provisioning mode](#cluster-provisioning-method).
138+
139+
For example, in `kind` mode it requires the following images:
140+
141+
```console
142+
docker.io/kindest/node:<tag>
143+
docker.io/docker/desktop-cloud-provider-kind:<tag>
144+
docker.io/docker/desktop-containerd-registry-mirror:<tag>
145+
```
146+
147+
In `kubeadm` mode it requires the following images:
148+
149+
```console
150+
docker.io/registry.k8s.io/kube-controller-manager:<tag>
151+
docker.io/registry.k8s.io/kube-apiserver:<tag>
152+
docker.io/registry.k8s.io/kube-scheduler:<tag>
153+
docker.io/registry.k8s.io/kube-proxy
154+
docker.io/registry.k8s.io/etcd:<tag>
155+
docker.io/registry.k8s.io/pause:<tag>
156+
docker.io/registry.k8s.io/coredns/coredns:<tag>
157+
docker.io/docker/desktop-storage-provisioner:<tag>
158+
docker.io/docker/desktop-vpnkit-controller:<tag>
159+
docker.io/docker/desktop-kubernetes:<tag>
160+
```
161+
162+
The image tags are automatically selected by Docker Desktop based on several
163+
factors, including the version of Kubernetes being used. The tags vary for each image.
164+
165+
To accommodate scenarios where access to Docker Hub is not allowed, admins can
166+
configure Docker Desktop to pull the above listed images from a different registry (e.g., a mirror)
167+
using the [KubernetesImagesRepository](../../security/for-admins/hardened-desktop/settings-management/configure-json-file.md#kubernetes) setting as follows.
168+
169+
An image name can be broken into `[registry[:port]/][namespace/]repository[:tag]` components.
170+
The `KubernetesImagesRepository` setting allows users to override the `[registry[:port]/][namespace]`
171+
portion of the image's name.
172+
173+
For example, if Docker Desktop Kubernetes is configured in `kind` mode and
174+
`KubernetesImagesRepository` is set to `my-registry:5000/kind-images`, then
175+
Docker Desktop will pull the images from:
176+
177+
```console
178+
my-registry:5000/kind-images/node:<tag>
179+
my-registry:5000/kind-images/desktop-cloud-provider-kind:<tag>
180+
my-registry:5000/kind-images/desktop-containerd-registry-mirror:<tag>
181+
```
182+
183+
These images should be cloned/mirrored from their respective images in Docker Hub. The tags must
184+
also match what Docker Desktop expects.
185+
186+
The recommended approach to set this up is the following:
187+
188+
1) Start Docker Desktop.
189+
190+
2) In Settings > Kubernetes, enable the *Show system containers* setting.
191+
192+
3) In Settings > Kubernetes, start Kubernetes using the desired cluster provisioning method: `kubeadm` or `kind`.
193+
194+
4) Wait for Kubernetes to start.
195+
196+
5) Use `docker ps` to view the container images used by Docker Desktop for the Kubernetes control plane.
197+
198+
6) Clone or mirror those images (with matching tags) to your custom registry.
199+
200+
7) Stop the Kubernetes cluster.
201+
202+
8) Configure the `KubernetesImagesRepository` setting to point to your custom registry.
203+
204+
9) Restart Docker Desktop.
205+
206+
10) Verify that the Kubernetes cluster is using the custom registry images using the `docker ps` command.
207+
208+
> [!NOTE]
209+
>
210+
> The `KubernetesImagesRepository` setting only applies to control plane images used by Docker Desktop
211+
> to set up the Kubernetes cluster. It has no effect on other Kubernetes pods.
212+
213+
> [!NOTE]
214+
>
215+
> When using `KubernetesImagesRepository` and [Enhanced Container Isolation (ECI)](../../security/for-admins/hardened-desktop/enhanced-container-isolation/_index.md)
216+
> is enabled, add the following images to the [ECI Docker socket mount image list](../../security/for-admins/hardened-desktop/settings-management/configure-json-file.md#enhanced-container-isolation):
217+
>
218+
> * [imagesRepository]/desktop-cloud-provider-kind:*
219+
> * [imagesRepository]/desktop-containerd-registry-mirror:*
220+
>
221+
> These containers mount the Docker socket, so you must add the images to the ECI images list. If not,
222+
> ECI will block the mount and Kubernetes won't start.
223+
134224
## Troubleshooting
135225

136226
- If Kubernetes fails to start, make sure Docker Desktop is running with enough allocated resources. Check **Settings** > **Resources**.

content/manuals/desktop/setup/vm-vdi.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,7 @@ Docker Desktop follows the VDI support definitions outlined [previously](#virtua
6464
### Support scope and responsibilities
6565

6666
For WSL 2-related issues, contact Nutanix support. For Docker Desktop-specific issues, contact Docker support.
67+
68+
## Aditional resources
69+
70+
- [Docker Desktop on Microsoft Dev Box](/manuals/desktop/features/dev-box.md)

content/manuals/engine/network/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ Here are some examples:
160160
>
161161
> > [!WARNING]
162162
> >
163-
> > Hosts within the same L2 segment (for example, hosts connected to the same
164-
> > network switch) can reach ports published to localhost.
163+
> > In releases older than 28.0.0, hosts within the same L2 segment (for example,
164+
> > hosts connected to the same network switch) can reach ports published to localhost.
165165
> > For more information, see
166166
> > [moby/moby#45610](https://github.com/moby/moby/issues/45610)
167167

content/manuals/engine/network/packet-filtering-firewalls.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,14 +234,14 @@ $ docker run --network=mynet -p 8080:80 myimage
234234
```
235235

236236
Then:
237-
- Only container port 80 will be open, for IPv4 and IPv6. It is accessible
238-
from anywhere, if there is routing to the container's address, and access
239-
is not blocked by the host's firewall.
237+
- Only container port 80 will be open, for IPv4 and IPv6.
240238
- For IPv6, using `routed` mode, port 80 will be open on the container's IP
241239
address. Port 8080 will not be opened on the host's IP addresses, and
242240
outgoing packets will use the container's IP address.
243241
- For IPv4, using the default `nat` mode, the container's port 80 will be
244-
accessible via port 8080 on the host's IP addresses, as well as directly.
242+
accessible via port 8080 on the host's IP addresses, as well as directly
243+
from within the Docker host. But, container port 80 cannot be accessed
244+
directly from outside the host.
245245
Connections originating from the container will masquerade, using the
246246
host's IP address.
247247

content/manuals/security/for-admins/hardened-desktop/settings-management/configure-json-file.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,14 +264,14 @@ The following `admin-settings.json` code and table provides an example of the re
264264

265265
|Parameter|OS|Description|Version|
266266
|:-------------------------------|---|:-------------------------------|---|
267-
|`kubernetes`| | If `enabled` is set to true, a Kubernetes single-node cluster is started when Docker Desktop starts. If `showSystemContainers` is set to true, Kubernetes containers are displayed in the Docker Desktop Dashboard and when you run `docker ps`. `imagesRepository` lets you specify which repository Docker Desktop pulls the Kubernetes images from. For example, `"imagesRepository": "registry-1.docker.io/docker"`. | |
267+
|`kubernetes`| | If `enabled` is set to true, a Kubernetes single-node cluster is started when Docker Desktop starts. If `showSystemContainers` is set to true, Kubernetes containers are displayed in the Docker Desktop Dashboard and when you run `docker ps`. The [imagesRepository](../../../../desktop/features/kubernetes.md#configuring-a-custom-image-registry-for-kubernetes-control-plane-images) setting lets you specify which repository Docker Desktop pulls control-plane Kubernetes images from. | |
268268

269269
> [!NOTE]
270270
>
271271
> When using the `imagesRepository` setting and Enhanced Container Isolation (ECI), add the following images to the [ECI Docker socket mount image list](#enhanced-container-isolation):
272272
>
273-
> `<custom-image-repo>/desktop-cloud-provider-kind:*`
274-
> `<custom-image-repo>/desktop-containerd-registry-mirror:*`
273+
> * [imagesRepository]/desktop-cloud-provider-kind:*
274+
> * [imagesRepository]/desktop-containerd-registry-mirror:*
275275
>
276276
> These containers mount the Docker socket, so you must add the images to the ECI images list. If not, ECI will block the mount and Kubernetes won't start.
277277

0 commit comments

Comments
 (0)