35 Commits

Author SHA1 Message Date
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
Sebastiaan van Stijn
4dce0e1246 vendor: github.com/Microsoft/go-winio v0.6.3-0.20251027160822-ad3df93bed29
not yet tagged, but used by github.com/Microsoft/hcsshim v0.15

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-07-16 21:41:06 +02:00
Sebastiaan van Stijn
e3c59640d5 vendor: github.com/Microsoft/go-winio v0.6.2
- fileinfo: internally fix FileBasicInfo memory alignment (fixes compatibility
  with go1.22)

full diff: https://github.com/Microsoft/go-winio/compare/v0.6.1...v0.6.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-04-23 11:00:52 +02: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
Bjorn Neergaard
fd6dd6935b vendor: github.com/containerd/containerd v1.7.6
The DeepEqual ignore required in the daemon tests is a bit ugly, but it
works given the new protoc output.

We also have to ignore lints related to schema1 deprecations; these do
not apply as we must continue to support this schema version.

Signed-off-by: Bjorn Neergaard <bjorn.neergaard@docker.com>
2023-09-21 14:18:40 -06: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
9d3590f375 vendor: github.com/Microsoft/go-winio v0.6.1
Unfortunately also brings in golang.org/x/tools as a dependency, due to
go-winio using a "tools.go" file.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-07-20 07:54:31 +02:00
Sebastiaan van Stijn
90431d1857 daemon/graphdriver/windows: use go-winio.GetFileSystemType()
go-winio now defines this function, so we can consume that.

Note that there's a difference between the old implementation and the original
one (added in 1cb9e9b44e). The old implementation
had special handling for win32 error codes, which was removed in the go-winio
implementation in 0966e1ad56

As `go-winio.GetFileSystemType()` calls `filepath.VolumeName(path)` internally,
this patch also removes the `string(home[0])`, which is redundant, and could
potentially panic if an empty string would be passed.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-10-10 16:22:05 +02:00
Sebastiaan van Stijn
63b13a70ee vendor: github.com/Microsoft/go-winio v0.5.2
full diff: https://github.com/Microsoft/go-winio/compare/v0.5.1...v0.5.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-04-29 16:12:56 +02: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
Kevin Parsons
59511e1234 vendor: Update go-winio to v0.5.1
Updates go-winio to the latest version. The main important fix here is
to go-winio's backuptar package. This is needed to fix a bug in sparse
file handling in container layers, which was exposed by a recent change
in Windows.

go-winio v0.5.1: https://github.com/microsoft/go-winio/releases/tag/v0.5.1

Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
2021-10-15 14:33:34 -07:00
Adam Williams
42a485f7fa Update Microsoft/go-winio to version 0.4.19
Signed-off-by: Adam Williams <awilliams@mirantis.com>
2021-04-26 10:02:58 -07: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
Paul "TBBle" Hampson
35c531db1a Revendor Microsoft/go-winio for 8gB file fix
This pulls in the migration of go-winio/backuptar from the bundled fork
of archive/tar from Go 1.6 to using Go's current archive/tar unmodified.

This fixes the failure to import an OCI layer (tar stream) containing a
file larger than 8gB.

Fixes: #40444

Signed-off-by: Paul "TBBle" Hampson <Paul.Hampson@Pobox.com>
2020-09-19 23:13:44 +10:00
Justin Terry (VM)
35fe16b7eb Update Microsoft/go-winio v0.4.14
Signed-off-by: Justin Terry (VM) <juterry@microsoft.com>
2019-08-07 09:36:51 -07:00
Kevin Parsons
e1f0f77bf4 Revendor go-winio
This is needed to provide fixes for ETW on ARM. The updated ETW package will
no-op on ARM, rather than crashing. Further changes are needed to Go itself to
allow ETW on ARM to work properly.

Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
2019-04-22 14:23:53 -07:00
John Howard
36d8e29140 Vendor Microsoft/go-winio@c599b533
Signed-off-by: John Howard <jhoward@microsoft.com>
2019-03-21 13:12:17 -07:00
John Howard
25dff4b4ab Vendor Microsoft/go-winio@4de24ed3
Signed-off-by: John Howard <jhoward@microsoft.com>
2019-03-12 18:41:46 -07:00
John Howard
66966941f9 Vendor Microsoft/go-winio v0.4.11
Signed-off-by: John Howard <jhoward@microsoft.com>
2018-09-06 09:54:24 -07: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
Vincent Demeester
b0d108aa6b Bump a bunch of dependencies to more recent versions
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2018-08-01 10:37:27 +02:00
Sebastiaan van Stijn
74095588ba Update Microsoft/go-winio to 0.4.8
Fixes named pipe support for hyper-v isolated containers

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2018-06-28 18:55:45 +02:00
Derek McGowan
52ed3e0896 Update containerd to 1.1
Updates swarmkit, grpc, and all related vendors

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2018-06-04 15:37:03 -07:00
John Howard
2956ef1db2 Revendor Microsoft/go-winio @ v0.4.6
Signed-off-by: John Howard <jhoward@microsoft.com>
2018-01-09 13:41:16 -08:00
John Howard
779469d9c9 Revendor Microsoft/go-winio @ v0.4.5
Signed-off-by: John Howard <jhoward@microsoft.com>
2017-08-09 08:31:43 -07:00
John Howard
45e2dd123b Revendor microsoft/go-winio @ v0.4.4
Signed-off-by: John Howard <jhoward@microsoft.com>
2017-08-03 09:06:26 -07:00
Darren Stahl
3f13107223 Update go-winio to v0.4.2
Signed-off-by: Darren Stahl <darst@microsoft.com>
2017-05-23 18:27:50 -07:00
Darren Stahl
af7d8d09ef Revendor go-winio to v0.4.1
Signed-off-by: Darren Stahl <darst@microsoft.com>
2017-05-19 16:13:52 -07:00
Darren Stahl
24d4177859 Update go-winio to v0.4.0
Signed-off-by: Darren Stahl <darst@microsoft.com>
2017-05-09 17:49:55 -07:00
David Gageot
97b572ea1b Windows: Fix Docker hanging with named pipes and stdin
Fixes #31922

Vendor a fork of Microsoft/go-winio that has this
PR (https://github.com/Microsoft/go-winio/pull/43)
merged


Signed-off-by: David Gageot <david@gageot.net>
2017-03-21 11:49:57 +01:00
Akihiro Suda
5a1b06d7fd rerun vndr
* run latest vndr so as to collect more LICENSE files
 * remove unused packages
 * vendor github.com/philhofer/fwd with LICENSE.md (MIT)
 * vendor github.com/bsphere/le_go with LICENSE (MIT)

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-03-08 02:29:34 +00:00
John Howard
da6739c99f Revendor Microsoft/go-winio v0.3.8
Signed-off-by: John Howard <jhoward@microsoft.com>
2017-01-31 16:46:59 -08:00
Darren Stahl
873a26697d Revendor go-winio to v0.3.7
Signed-off-by: Darren Stahl <darst@microsoft.com>
2016-11-22 10:39:42 -08:00
John Howard
d936a77160 Revendor Microsoft/go-winio to v0.3.6
Signed-off-by: John Howard <jhoward@microsoft.com>
2016-11-08 17:59:01 -08:00
Alexander Morozov
f2614f2107 project: use vndr for vendoring
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-11-03 15:31:46 -07:00