Skip to content

Commit fe09c79

Browse files
committed
final checks
1 parent cc5af44 commit fe09c79

File tree

7 files changed

+27
-28
lines changed

7 files changed

+27
-28
lines changed

desktop/hardened-desktop/enhanced-container-isolation/faq.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ devices.
4545
Enhanced Container Isolation allows running advanced workloads, but denies the ability to perform
4646
kernel operations or access hardware devices.
4747

48-
#### Does Enhanced Container Isolation restrict bind-mounts inside the container?
48+
#### Does Enhanced Container Isolation restrict bind mounts inside the container?
4949

50-
Yes, it restricts bind-mounts of directories located in the Docker Desktop Linux
50+
Yes, it restricts bind mounts of directories located in the Docker Desktop Linux
5151
VM into the container.
5252

53-
It does not restrict bind-mounts of your host machine files into the container,
53+
It does not restrict bind mounts of your host machine files into the container,
5454
as configured via Docker Desktop's **Settings** > **Resources** > **File Sharing**.
5555

5656
#### Does Enhanced Container Isolation protect all containers launched with Docker Desktop?

desktop/hardened-desktop/enhanced-container-isolation/features-benefits.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,18 +134,18 @@ Finally, Docker build `--network=host` and Docker buildx entitlements
134134
(`network.host`, `security.insecure`) are not allowed. Builds that require these
135135
won't work properly.
136136

137-
### Bind-Mount restrictions
137+
### Bind mount restrictions
138138

139139
When Enhanced Container Isolation is enabled, Docker Desktop users can continue
140-
to bind-mount host directories into containers as configured via **Settings** >
141-
**Resources** > **File sharing**, but they are no longer allowed to bind-mount
140+
to bind mount host directories into containers as configured via **Settings** >
141+
**Resources** > **File sharing**, but they are no longer allowed to bind mount
142142
arbitrary Linux VM directories into containers.
143143

144144
This prevents containers from modifying sensitive files inside the Docker
145145
Desktop Linux VM, files that can hold configurations for registry access
146146
management, proxies, docker engine configurations, and more.
147147

148-
For example, the following bind-mount of the Docker Engine's configuration file
148+
For example, the following bind mount of the Docker Engine's configuration file
149149
(`/etc/docker/daemon.json` inside the Linux VM) into a container is restricted
150150
and therefore fails:
151151

@@ -157,9 +157,9 @@ docker: Error response from daemon: failed to create shim task: OCI runtime crea
157157
In contrast, without Enhanced Container Isolation this mount works and gives the
158158
container full read and write access to the Docker Engine's configuration.
159159

160-
Of course, bind-mounts of host files continue to work as usual. For example,
160+
Of course, bind mounts of host files continue to work as usual. For example,
161161
assuming a user configures Docker Desktop to file share her $HOME directory,
162-
she can bind-mount it into the container:
162+
she can bind mount it into the container:
163163

164164
```
165165
$ docker run -it --rm -v $HOME:/mnt alpine
@@ -168,7 +168,7 @@ $ docker run -it --rm -v $HOME:/mnt alpine
168168

169169
> Note
170170
>
171-
> Enhanced Container Isolation won't allow bind-mounting the Docker socket
171+
> Enhanced Container Isolation won't allow bind mounting the Docker socket
172172
> (/var/run/docker.sock) into a container, as doing so essentially grants the
173173
> container control of Docker, thus breaking container isolation. Containers
174174
> that rely on this will not work with Enhanced Container Isolation enabled.
@@ -181,7 +181,7 @@ few highly sensitive system calls inside containers, such as `mount` and
181181
system calls can't use them to breach the container.
182182

183183
For example, a container that has `CAP_SYS_ADMIN` (required to execute the
184-
`mount` system call) can't use that capability to change a read-only bind-mount
184+
`mount` system call) can't use that capability to change a read-only bind mount
185185
into a read-write mount:
186186

187187
```

desktop/hardened-desktop/enhanced-container-isolation/how-eci-works.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ mode or Rootless Docker. This is explained further below.
4040
Sysbox enhances container isolation by using techniques such as:
4141

4242
* Enabling the Linux user-namespace on all containers (root user in the container maps to an unprivileged user in the Linux VM).
43-
* Restricting the container from mounting sensitive VM directories
44-
* Vetting sensitive system-calls between the container and the Linux kernel
45-
* Mapping filesystem user/group IDs between the container's user-namespace and the Linux VM
46-
* Emulating portions of the procfs and sysfs filesystems inside the container
43+
* Restricting the container from mounting sensitive VM directories.
44+
* Vetting sensitive system-calls between the container and the Linux kernel.
45+
* Mapping filesystem user/group IDs between the container's user-namespace and the Linux VM.
46+
* Emulating portions of the procfs and sysfs filesystems inside the container.
4747

4848
Some of these are made possible by recent advances in the Linux kernel which
4949
Docker Desktop now incorporates. Sysbox applies these techniques with minimal
@@ -58,7 +58,7 @@ For more information, see [Key features and benefits](features-benefits.md).
5858

5959
### Enhanced Container Isolation vs Docker Userns-Remap Mode
6060

61-
The Docker Engine includes a feature called [userns-remap mode][/engine/security/userns-remap/]
61+
The Docker Engine includes a feature called [userns-remap mode](/engine/security/userns-remap/)
6262
that enables the user-namespace in all containers. However it suffers from a few
6363
[limitations](/engine/security/userns-remap/) and it's
6464
not supported within Docker Desktop.
@@ -73,7 +73,7 @@ Desktop in organizations with stringent security requirements.
7373

7474
### Enhanced Container Isolation vs Rootless Docker
7575

76-
[Rootless Docker][/engine/security/rootless/] allows the Docker Engine, and by
76+
[Rootless Docker](/engine/security/rootless/) allows the Docker Engine, and by
7777
extension the containers, to run without root privileges natively a Linux host. This
7878
allows non-root users install and run Docker natively on Linux.
7979

desktop/hardened-desktop/enhanced-container-isolation/index.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ When Enhanced Container Isolation is enabled using [Settings Management](../sett
3535

3636
- All user containers are automatically run in Linux User Namespaces which ensures stronger isolation.
3737
- The root user in the container maps to an unprivileged user at VM level.
38-
- Users can continue using containers as usual, including bind-mounting host directories, volumes, networking configurations, etc.
38+
- Users can continue using containers as usual, including bind mounting host directories, volumes, networking configurations, etc.
3939
- Privileged containers work, but they are only privileged within the container's Linux User Namespace, not in the Docker Desktop VM.
4040
- Containers can no longer share namespaces with the Docker Desktop VM. For example, `--network=host`, `--pid=host`.
4141
- Containers can no longer modify configuration files in the Docker Desktop VM.
@@ -65,7 +65,10 @@ Next, you must [create and configure the `admin-settings.json` file](../settings
6565
}
6666
```
6767

68-
Once this is done, developers need to either quit, re-launch, and sign in to Docker Desktop, or launch and sign in to Docker Desktop for the first time.
68+
For this to take effect:
69+
70+
- On a new install, developers need to launch Docker Desktop and authenticate to their organization.
71+
- On an existing install, developers need to quit Docker Desktop through the Docker menu, and then relaunch Docker Desktop. If they are already signed in, they don’t need to sign in again for the changes to take effect.
6972

7073
>Important
7174
>
@@ -74,7 +77,7 @@ Once this is done, developers need to either quit, re-launch, and sign in to Doc
7477

7578
### What do users see when this setting is enforced?
7679

77-
When Enhanced Container Isolation is enabled, users see that containers run within a Linux user-namespace.
80+
When Enhanced Container Isolation is enabled, users see that containers run within a Linux user namespace.
7881

7982
To check, run:
8083

@@ -90,7 +93,7 @@ The following output displays:
9093

9194
This indicates that the container's root user (0) maps to unprivileged user (100000) in the Docker Desktop VM, and that the mapping extends for a range of 64K user-IDs.
9295

93-
In contrast, without Enhanced Container Isolation the Linux user-namespace is not used, the following displays:
96+
In contrast, without Enhanced Container Isolation the Linux user namespace is not used, the following displays:
9497

9598
```
9699
0 0 4294967295

desktop/hardened-desktop/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ keywords: security, hardened desktop, enhanced container isolation, registry acc
77
>
88
>Hardened Desktop is available to Docker Business customers only.
99
10-
Hardened Desktop is a security model for Docker Desktop. It's designed to provide admins with a simple and powerful way to improve their organizations security posture for containerized development, without impacting the developer experience that Docker Desktop offers.
10+
Hardened Desktop is a security model for Docker Desktop. It's designed to provide admins with a simple and powerful way to improve their organization's security posture for containerized development, without impacting the developer experience that Docker Desktop offers.
1111

1212
It is for security conscious organizations who don’t give their users root or admin access on their machines, and who would like Docker Desktop to be within their organization’s centralized control.
1313

desktop/hardened-desktop/registry-access-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ You need to [configure a registry.json to enforce sign-in](../../docker-hub/conf
2929
To configure Registry Access Management permissions:
3030

3131
1. Sign in to your [Docker Hub](https://hub.docker.com){: target="_blank" rel="noopener" class="_"} account as an organization owner.
32-
2. Select an organization and then navigate to the **Settings** tab on the **Organizations** page and click **Registry Access**.
32+
2. Select an organization and then navigate to the **Settings** tab on the **Organizations** page and select **Registry Access**.
3333
3. Toggle on Registry Access Management to set the permissions for your registry.
3434

3535
> **Note**

desktop/hardened-desktop/settings-management/index.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,20 +43,16 @@ For more details on the syntax and options admins can set, see [Configure Settin
4343

4444
As an administrator, you first need to [configure a registry.json to enforce sign-in](../../../docker-hub/configure-sign-in.md). This is because the Settings Management feature requires a Docker Business subscription and therefore your Docker Desktop users must authenticate to your organization for this configuration to take effect.
4545

46-
Next, you must [create and configure the admin-settings.json file](configure.md). You can also use the `--admin-settings` installer flag on [macOS](../../install/mac-install.md#install-from-the-command-line) or [Windows](../../install/windows-install.md#install-from-the-command-line) to automatically create the `admin-settings.json` and save it in the correct location
46+
Next, you must either manually [create and configure the admin-settings.json file](configure.md), or use the `--admin-settings` installer flag on [macOS](../../install/mac-install.md#install-from-the-command-line) or [Windows](../../install/windows-install.md#install-from-the-command-line) to automatically create the `admin-settings.json` and save it in the correct location.
4747

4848
Once this is done, Docker Desktop users receive the changed settings when they either:
4949
- Quit, re-launch, and sign in to Docker Desktop
5050
- Launch and sign in to Docker Desktop for the first time
5151

5252
Docker doesn't automatically mandate that developers re-launch and re-authenticate once a change has been made, so as not to disrupt your developers' workflow.
5353

54-
55-
5654
### What do users see when the settings are enforced?
5755

58-
Docker Desktop users see a notification in **Settings**, or **Preferences** if using a macOS, which states **Some settings are managed by your Admin**.
59-
6056
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, users 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.
6157

6258
![Proxy settings grayed out](/assets/images/grayed-setting.png){:width="750px"}

0 commit comments

Comments
 (0)