70 Commits

Author SHA1 Message Date
Mend Renovate
4c87a4dad1 fix(deps): update module github.com/microsoft/hcsshim to v0.15.0-rc.3
Signed-off-by: Mend Renovate <bot@renovateapp.com>
2026-07-26 17:28:16 +00:00
Paweł Gronowski
a8a1cfd111 daemon: Add embedded containerd mode
Run containerd inside dockerd when the experimental
`embedded-containerd` feature is enabled through `--feature` or the
daemon configuration.

Serve containerd's gRPC API on a Unix socket, or a named pipe on
Windows, for the plugin executor and external tools.
Use an in-memory listener for dockerd's own containerd client. Serve
TTRPC on a platform endpoint so task shims can publish events.

Register only the containerd plugins dockerd needs. Leave CRI, sandbox,
streaming, transfer, NRI, and the restart monitor out of the embedded
server.
Reject `--cri-containerd` when embedded mode is enabled instead of
silently ignoring the requested CRI support.

Check the feature before `ContainerdAddr` so it can override the default
containerd socket supplied by packaged service units. Continue to use
the configured external containerd when the feature is disabled.

Derive the Windows named-pipe address from the daemon state directory so
multiple daemons can run on the same host. Restrict the pipes to the
built-in Administrators group and LocalSystem with the same protected
DACL as dockerd's API pipe, as the default security descriptor depends
on the process token and can expose the containerd endpoints more
broadly than intended. Treat embedded mode as a containerd runtime in
the Windows test environment.

Add the `no_embedded_containerd` build tag so distributors can omit the
embedded plugin graph and its dependencies.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-07-24 16:39:06 +02:00
Dawei Wei
deef0ea2d7 daemon: fix empty docker stats for Windows containerd runtime
When the daemon uses the containerd runtime (io.containerd.runhcs.v1),
the runhcs shim emits container metrics as the typeurl
`containerd.runhcs.stats.v1.Statistics`. moby never imported the package
that registers this type, so `typeurl.UnmarshalAny` failed with "type not
found" and `docker stats` reported all zeros for running Windows
containers.

Import the hcsshim runhcs stats package so its proto init registers the
typeurl, and handle `*wstats.Statistics` in `InterfaceToStats`, converting
the Windows container statistics (processor time is reported in
nanoseconds and converted to the 100ns units used by hcsshim.Statistics)
into the shape consumed by stats_windows.go. Also replace the bare type
assertion with a type switch so unexpected payloads no longer panic.

Un-skip TestStatsAllNoStream and TestStatsAllRunningNoStream, and add a
unit test for the conversion.

Signed-off-by: Dawei Wei <wei.dawei.cn@gmail.com>
2026-07-20 11:47:18 -07:00
Sebastiaan van Stijn
7c3e04997e vendor: github.com/Microsoft/hcsshim v0.15.0-rc.1
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-07-16 21:41:41 +02:00
Sebastiaan van Stijn
a040664176 vendor: github.com/Microsoft/hcsshim v0.14.0-rc.1
full diff: https://github.com/Microsoft/hcsshim/compare/v0.13.0...v0.14.0-rc.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-11 13:22:25 +01:00
Jonathan A. Sternberg
e4e7fcf668 vendor: github.com/moby/buildkit v0.23.0-rc1
Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-06-12 19:08:16 +02:00
Derek McGowan
0aa8fe0bf9 Update to containerd v2.0.2, buildkit v0.19.0-rc2
Update buildkit version to commit which uses 2.0

Signed-off-by: Derek McGowan <derek@mcg.dev>
2025-01-15 14:09:30 +01:00
Sebastiaan van Stijn
f68eb9c3cb vendor: github.com/Microsoft/hcsshim v0.12.9
full diff: https://github.com/Microsoft/hcsshim/compare/v0.12.8...v0.12.9

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-01-14 20:21:15 +01:00
Sebastiaan van Stijn
5f39567e56 vendor: github.com/containerd/containerd v1.7.23, hcsshim v0.12.8
full diff:

- https://github.com/containerd/containerd/compare/v1.7.22...v1.7.23
- https://github.com/microsoft/hcsshim/compare/v0.12.7...v0.12.8

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-10-30 09:19:20 +01:00
Sebastiaan van Stijn
93255bd748 vendor: github.com/Microsoft/hcsshim v0.12.7
- full diff: https://github.com/Microsoft/hcsshim/compare/v0.12.5...v0.12.7

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-10-29 11:43:32 +01:00
Akihiro Suda
f49fad75eb vendor.mod: github.com/microsoft/hcsshim v0.12.5
https://github.com/microsoft/hcsshim/compare/v0.11.7...v0.12.5

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2024-08-18 04:38:57 +09:00
Sebastiaan van Stijn
a2fe103f0d vendor: github.com/microsoft/hcsshim v0.11.7
- Fix process handle leak when launching a job container
- Add EndpointState attribute to the HNSEndpoint struct to support
  hyperv containers for k8s
- Add support for loadbalancer policy update in hns
- Changes for checking the global version for modify policy version support
- OutBoundNATPolicy Schema changes (add MaxPortPoolUsage to OutboundNatPolicySetting)

full diff: https://github.com/microsoft/hcsshim/compare/v0.11.5...v0.11.7

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-29 21:04:16 +02:00
Derek McGowan
e459487feb Update containerd to v1.7.17
Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-16 15:24:38 -07:00
Sebastiaan van Stijn
2f28582b55 vendor: github.com/Microsoft/hcsshim v0.11.4
full diff: https://github.com/Microsoft/hcsshim/compare/v0.11.1...v0.11.4

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-11-19 13:12:22 +01:00
Sebastiaan van Stijn
e852ba55a5 vendor: github.com/Microsoft/hcsshim v0.11.1
full diff: https://github.com/Microsoft/hcsshim/compare/v0.9.10...v0.11.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-09-21 08:37:39 +02:00
Sebastiaan van Stijn
cc9c930e29 vendor: github.com/Microsoft/hcsshim v0.9.10
Add support for platform compatibility check for windows + add windows builds

full diff: https://github.com/Microsoft/hcsshim/compare/v0.9.8...v0.9.10

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-09-15 12:52:02 +02:00
Djordje Lukic
bba77163ff c8d: Make build and buildx work
- Only use the image exporter in build if we don't use containerd
  Without this "docker build" fails with:

    Error response from daemon: exporter "image" could not be found

- let buildx know we support containerd snapshotter
- Pass the current snapshotter to the buildkit worker

  If buildkit uses a different snapshotter we can't list the images any
  more because we can't find the snapshot.

builder/builder-next: make ContainerdWorker a minimal wrapper

Note that this makes "Worker" a public field, so technically one could
overwrite it.

builder-next: reenable runc executor

Currently, without special CNI config the builder would
only create host network containers that is a security issue.

Using runc directly instead of shim is faster as well
as builder doesn’t need anything from shim. The overhead
of setting up network sandbox is much slower of course.

builder/builder-next: simplify options handling

Trying to simplify the logic;

- Use an early return if multiple outputs are provided
- Only construct the list of tags if we're using an image (or moby) exporter
- Combine some logic for snapshotter and non-snapshotter handling

Create a constant for the moby exporter

Pass a context when creating a router

The context has a 10 seconds timeout which should be more than enough to
get the answer from containerd.

Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
Co-authored-by: Sebastiaan van Stijn <github@gone.nl>
Co-authored-by: Tonis Tiigi <tonistiigi@gmail.com>
Co-authored-by: Nicolas De Loof <nicolas.deloof@gmail.com>
Co-authored-by: Paweł Gronowski <pawel.gronowski@docker.com>
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2023-03-07 10:01:47 +01:00
Sebastiaan van Stijn
5997ad8512 vendor: github.com/Microsoft/hcsshim v0.9.7
- Retain pause.exe as entrypoint for default pause images
- wcow: support graceful termination of servercore containers

full diff: https://github.com/Microsoft/hcsshim/compare/v0.9.6...v0.9.7

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-02-28 23:25:58 +01:00
Sebastiaan van Stijn
9300aca2a6 vendor: github.com/Microsoft/hcsshim v0.9.6
full diff: https://github.com/Microsoft/hcsshim/compare/v0.9.5...v0.9.6

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-12-15 19:33:18 +01:00
Jintao Zhang
4e5c3b82cb vendor: github.com/containerd/containerd v1.6.10
Signed-off-by: Jintao Zhang <zhangjintao9020@gmail.com>
2022-11-15 15:11:05 +08:00
Paweł Gronowski
69f077f1aa vendor: github.com/Microsoft/hcsshim v0.9.4
full diff: https://github.com/microsoft/hcsshim/compare/v0.9.3...v0.9.4

Changes are mostly fixes of unsafe usage of `unsafe.Pointer`

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2022-08-02 10:03:11 +02:00
Ameya Gawde
c576de88ed vendor: github.com/Microsoft/hcsshim v0.9.3
Signed-off-by: Ameya Gawde <agawde@mirantis.com>
2022-05-23 09:15:16 -07:00
Sebastiaan van Stijn
9d6382f2b3 vendor: github.com/Microsoft/hcsshim v0.9.2
full diff: https://github.com/Microsoft/hcsshim/compare/v0.8.23...v0.9.2

diff is hard to compare on github, because Microsoft/opengcs was merged into
hcsshim; https://github.com/microsoft/hcsshim/pull/973

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-02-24 21:28:18 +01:00
Sebastiaan van Stijn
e5d28115ee vendor: regenerate
- all changes here are attributed to difference in behaviour between,
  namely:
  - resolution of secondary test dependencies
  - prunning of non-Go files

Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-18 15:46:04 +01:00
Sebastiaan van Stijn
a715bfb857 vendor: github.com/Microsoft/hcsshim v0.8.23
full diff: https://github.com/Microsoft/hcsshim/compare/v0.8.22...v0.8.23

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-11-19 13:50:13 +01:00
Sebastiaan van Stijn
c97d09b1e1 vendor: github.com/Microsoft/hcsshim v0.8.22
No significant changes for our vendored code, but reverts back containerd minimal
dependency to v1.4.9.

full diff: https://github.com/Microsoft/hcsshim/compare/v0.8.20...v0.8.22

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-11-05 14:55:40 +01:00
Kevin Parsons
f7eaf2bf78 Update hcsshim vendor to v0.8.20
Full set of changes: https://github.com/Microsoft/hcsshim/compare/v0.8.16...v0.8.20

Importantly brings in https://github.com/microsoft/hcsshim/pull/1065,
which fixes #42610.

Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
2021-07-09 15:36:39 -07:00
Brian Goff
a7ea29a5a6 Merge pull request #42451 from thaJeztah/remove_lcow_step1
Remove LCOW code (step 1)
2021-06-08 13:41:45 -07:00
Sebastiaan van Stijn
7c1c123555 vendor: github.com/containerd/containerd v1.5.2
full diff: 19ee068f93...v1.5.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-04 16:32:37 +02:00
Sebastiaan van Stijn
e047d984dc Remove LCOW code (step 1)
The LCOW implementation in dockerd has been deprecated in favor of re-implementation
in containerd (in progress). Microsoft started removing the LCOW V1 code from the
build dependencies we use in Microsoft/opengcs (soon to be part of Microsoft/hcshhim),
which means that we need to start removing this code.

This first step removes the lcow graphdriver, the LCOW initialization code, and
some LCOW-related utilities.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-06-03 21:16:21 +02:00
Brian Goff
452f82d5fc Bump hcsshim to get some fixes.
This also requires bumping winio.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2021-04-07 22:45:33 +00:00
Sebastiaan van Stijn
27801b9ef8 vendor: update github.com/Microsoft/hcsshim v0.8.10 (back to tagged release)
This switches the hcsshim dependency back to tagged releases, instead of the special
"moby" branch. This makes the dependency align with both BuildKit and containerd,
which use these versions.

The switch to the "moby" branch was done in 2865478487,
to bring in a fix for image import, without having to bring in additional changes;

> We changed to the moby branch for a couple of reasons:
>
> - Allows us to take this important change without needing to also pull in all
>   of the other work that has been going on in the repo.
> - moby uses an older set of APIs exposed from hcsshim, based on the HCS v1
>   functionality. Going forwards, we have discussed deprecating/removing these
>   APIs from the mainline branch in hcsshim, so our thinking was we could keep
>   this moby branch around to ensure we don't break compatibility there.
>
> (...) Long term, the best path here is to get moby using containerd as the
> backend on Windows, which should alleviate these issues.

full diff: 9dcb42f100..v0.8.10

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-11-18 11:49:55 +01:00
Kevin Parsons
2865478487 Revendor hcsshim to fix image import bug
This change brings in a single new commit from Microsoft/hcsshim. The
commit fixes an issue when unpacking a Windows container layer which
could result in incorrect directory timestamps.

This manifested most significantly in an impact to startup times of
some Windows container images (such as anything based on servercore).

Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
2020-07-06 14:33:39 -07:00
Sebastiaan van Stijn
08d3774304 vendor: Microsoft/hcsshim v0.8.9
full diff: https://github.com/Microsoft/hcsshim/compare/v0.8.7...v0.8.9

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-05 20:42:02 +02:00
Vikram bir Singh
a7b6c3f0bf Bump hcsshim to b3f49c06ffaeef24d09c6c08ec8ec8425a
Among other things, this is required to pull in
microsoft/hcsshim#718

Also fixes microsoft/hcsshim#737
which was caught by checks while attempting to bump
up hcsshim version.

Signed-off-by: Vikram bir Singh <vikrambir.singh@docker.com>
2019-11-25 09:58:10 -08:00
Sebastiaan van Stijn
a5341aaf32 bump Microsoft/hcsshim 2226e083fc390003ae5aa8325c3c92789afa0e7a
Adds osversion.Build() utility

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-10-22 02:51:21 +02:00
John Howard
80daf64216 Revendor Microsoft/hcsshim@672e52e9
Signed-off-by: John Howard <jhoward@microsoft.com>
2019-04-18 09:51:27 -07:00
John Howard
b2488120ff Vendor Microsoft/hcsshim@ba3d6667
Signed-off-by: John Howard <jhoward@microsoft.com>
2019-03-27 14:12:40 -07:00
John Howard
cc46695320 Vendor Microsoft/hcsshim@ada9cb39
Signed-off-by: John Howard <jhoward@microsoft.com>
2019-03-12 18:21:41 -07:00
John Howard
07742515fb Vendor Microsoft/hcsshim @ v0.8.6
Signed-off-by: John Howard <jhoward@microsoft.com>
2019-02-05 09:52:31 -08:00
John Howard
05151dcc39 Windows:Bump HCSShim to v0.8.3
Signed-off-by: John Howard <jhoward@microsoft.com>
2018-12-03 14:08:26 -08:00
Justin Terry (VM)
b2d99865ea Add --device support for Windows
Implements the --device forwarding for Windows daemons. This maps the physical
device into the container at runtime.

Ex:

docker run --device="class/<clsid>" <image> <cmd>

Signed-off-by: Justin Terry (VM) <juterry@microsoft.com>
2018-11-21 15:31:17 -08:00
Sebastiaan van Stijn
dd7799afd4 update containerd client and dependencies to v1.2.0
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2018-11-05 18:46:26 +01:00
John Howard
d03ab10662 Vendor Microsoft/hcsshim @ v0.7.9
Signed-off-by: John Howard <jhoward@microsoft.com>
2018-10-09 18:15:59 -07:00
Sebastiaan van Stijn
dd622c81a4 Update containerd client and dependencies to v1.2.0-rc.1
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2018-10-04 15:20:34 +02:00
John Howard
ddd4adb00a Bump Microsoft/hcsshim to v0.7.3
Signed-off-by: John Howard <jhoward@microsoft.com>
2018-09-10 10:19:32 -07:00
Tibor Vass
effa24bf48 vendor buildkit to fix a couple of bugs
Signed-off-by: Tibor Vass <tibor@docker.com>
2018-09-04 15:17:40 +00:00
John Howard
805211a6e8 Revendor hcsshim and go-winio
Signed-off-by: John Howard <john.howard@microsoft.com>
2018-08-23 12:03:33 -07:00
Justin Terry (VM)
e93077bcdf Adds LinuxMetadata support by default on Windows
1. Sets the LinuxMetadata flag by default on Windows LCOW v1
MappedDirectories.

Signed-off-by: Justin Terry (VM) <juterry@microsoft.com>
2018-07-23 09:59:35 -07:00
John Stephens
1c136d99a0 Update hcsshim to v0.6.11
Signed-off-by: John Stephens <johnstep@docker.com>
2018-05-03 13:36:51 -07:00