mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
0b14c2b67a
The previous default runtime `io.containerd.runtime.v1.linux` is being deprecated (https://github.com/containerd/containerd/issues/4365) `io.containerd.runc.v2` is available since containerd v1.3.0. Using v1.3.5 or later is recommended. v1.3.0-v1.3.4 doesn't pass `TestContainerStartOnDaemonRestart`. Fix #41107 Replace #41115 Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
37 lines
1.4 KiB
Go
37 lines
1.4 KiB
Go
// +build !windows
|
|
|
|
package daemon // import "github.com/docker/docker/daemon"
|
|
|
|
import (
|
|
"github.com/docker/docker/container"
|
|
"github.com/docker/docker/errdefs"
|
|
"github.com/opencontainers/runc/libcontainer/cgroups"
|
|
"github.com/pkg/errors"
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
// getLibcontainerdCreateOptions callers must hold a lock on the container
|
|
func (daemon *Daemon) getLibcontainerdCreateOptions(container *container.Container) (string, interface{}, error) {
|
|
// Ensure a runtime has been assigned to this container
|
|
if container.HostConfig.Runtime == "" {
|
|
container.HostConfig.Runtime = daemon.configStore.GetDefaultRuntimeName()
|
|
container.CheckpointTo(daemon.containersReplica)
|
|
}
|
|
|
|
rt := daemon.configStore.GetRuntime(container.HostConfig.Runtime)
|
|
if rt.Shim == nil {
|
|
p, err := daemon.rewriteRuntimePath(container.HostConfig.Runtime, rt.Path, rt.Args)
|
|
if err != nil {
|
|
return "", nil, translateContainerdStartErr(container.Path, container.SetExitCode, err)
|
|
}
|
|
rt.Shim = defaultV2ShimConfig(daemon.configStore, p)
|
|
}
|
|
if rt.Shim.Binary == linuxShimV1 {
|
|
if cgroups.IsCgroup2UnifiedMode() {
|
|
return "", nil, errdefs.InvalidParameter(errors.Errorf("runtime %q is not supported while cgroups v2 (unified hierarchy) is being used", container.HostConfig.Runtime))
|
|
}
|
|
logrus.Warnf("Configured runtime %q is deprecated and will be removed in the next release", container.HostConfig.Runtime)
|
|
}
|
|
|
|
return rt.Shim.Binary, rt.Shim.Opts, nil
|
|
}
|