Skip to content

Conversation

@aevesdocker
Copy link
Contributor

@aevesdocker aevesdocker commented Oct 29, 2025

High-level info about Docker Desktop networking.
Preview: https://deploy-preview-23626--docsdocker.netlify.app/desktop/features/networking/

Follow-up tasks:

@netlify
Copy link

netlify bot commented Oct 29, 2025

Deploy Preview for docsdocker ready!

Name Link
🔨 Latest commit 21e464a
🔍 Latest deploy log https://app.netlify.com/projects/docsdocker/deploys/690232dbc4ffcf0008616d5d
😎 Deploy Preview https://deploy-preview-23626--docsdocker.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions github-actions bot added the area/desktop Issue affects a desktop edition of Docker. E.g docker for mac label Oct 29, 2025
Copy link
Contributor

@djs55 djs55 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

IMHO the most confusing part is the interaction with settings e.g. if using WSL 2 or virtiofs the file access is handled differently; if using Linux the network proxy is different. Maybe a later extension could be to positively recommend particular configurations e.g.

  • on Windows: use Hyper-V: com.docker.backend.exe does networking + filesharing
  • on Mac: use virtualization.framework and gRPC FUSE: com.docker.backend does networking + filesharing
  • on Linux: the file access is performed by virtiofsd and the network by qemu (<-- I think we should simplify that in the product)


## Firewalls and endpoint visibility

Docker Desktop doesn't include a built-in firewall.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One could argue that "air-gapped containers" includes a kind of firewall. Maybe drop this comment to avoid having to bring air-gapped containers into the discussion (for now)?

Suggested change
Docker Desktop doesn't include a built-in firewall.


Use Windows Defender Firewall or enterprise endpoint firewalls for control. This enables traffic inspection and restriction at the host level without modifying the Docker Engine.

CrowdStrike and similar tools can observe all traffic and file access that passes through the backend process. To monitor in-VM operations, install the agent inside the Docker VM.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's possible in theory to install the agent inside the VM, but it's difficult to do in practice because the VM is not persistent, so after a restart it will be gone.

Suggested change
CrowdStrike and similar tools can observe all traffic and file access that passes through the backend process. To monitor in-VM operations, install the agent inside the Docker VM.
CrowdStrike and similar tools can observe all traffic and file access that passes through the backend process.

| Container reads host files | Yes | Access handled by `com.docker.backend` |
| Container writes host files | Yes | Same process performs the write |
| Container accesses its own filesystem layers | No | Exists only inside the VM |
| Endpoint agent inside VM | Yes | Full visibility |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe avoid this one for now while we consider how practical it is

Suggested change
| Endpoint agent inside VM | Yes | Full visibility |

Th backend acts as:

- A network proxy, translating traffic between the host and Linux VM.
- A file server, using gRPC FUSE which handles file access from containers to the host filesystem.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strictly speaking this depends on the exact filesharing tech in use. It's safest to limit to gRPC FUSE (Windows HyperV and Mac for now)

Suggested change
- A file server, using gRPC FUSE which handles file access from containers to the host filesystem.
- A file server, if using gRPC FUSE which handles file access from containers to the host filesystem.


## Overview

Docker Desktop runs the Docker Engine inside a lightweight Linux virtual machine (VM). Docker Desktop routes all network and file operations between the Docker VM and the host through the `com.docker.backend` process.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add a filesharing caveat here, that it only does this if using gRPC FUSE (not virtiofs or qemu)?


Th backend acts as:

- A network proxy, translating traffic between the host and Linux VM.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately the network proxy is in a different place by default on Linux, maybe

Suggested change
- A network proxy, translating traffic between the host and Linux VM.
- A network proxy (on Mac and Windows, for Linux use `qemu`), translating traffic between the host and Linux VM.

Or we could reference the note at the bottom about Linux (or maybe the note is enough?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/desktop Issue affects a desktop edition of Docker. E.g docker for mac area/tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants