start_unix.go 883 B

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