github.com/gdevillele/moby@v1.13.0/daemon/start_unix.go (about)

     1  // +build !windows
     2  
     3  package daemon
     4  
     5  import (
     6  	"fmt"
     7  
     8  	"github.com/docker/docker/container"
     9  	"github.com/docker/docker/libcontainerd"
    10  )
    11  
    12  func (daemon *Daemon) getLibcontainerdCreateOptions(container *container.Container) ([]libcontainerd.CreateOption, error) {
    13  	createOptions := []libcontainerd.CreateOption{}
    14  
    15  	// Ensure a runtime has been assigned to this container
    16  	if container.HostConfig.Runtime == "" {
    17  		container.HostConfig.Runtime = stockRuntimeName
    18  		container.ToDisk()
    19  	}
    20  
    21  	rt := daemon.configStore.GetRuntime(container.HostConfig.Runtime)
    22  	if rt == nil {
    23  		return nil, fmt.Errorf("no such runtime '%s'", container.HostConfig.Runtime)
    24  	}
    25  	if UsingSystemd(daemon.configStore) {
    26  		rt.Args = append(rt.Args, "--systemd-cgroup=true")
    27  	}
    28  	createOptions = append(createOptions, libcontainerd.WithRuntime(rt.Path, rt.Args))
    29  
    30  	return createOptions, nil
    31  }