// +build !windows package docker import ( "io/ioutil" "os" "os/exec" ) const dockerExe = "/usr/local/bin/docker" const dockerdExe = "/usr/local/bin/dockerd" const dockerHome = "/root/.docker/" func (p Plugin) startDaemon() { cmd := commandDaemon(p.Daemon) if p.Daemon.Debug { cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr } else { cmd.Stdout = ioutil.Discard cmd.Stderr = ioutil.Discard } go func() { trace(cmd) cmd.Run() }() } // helper function to create the docker daemon command. func commandDaemon(daemon Daemon) *exec.Cmd { args := []string{ "--data-root", daemon.StoragePath, "--host=unix:///var/run/docker.sock", } if daemon.StorageDriver != "" { args = append(args, "-s", daemon.StorageDriver) } if daemon.Insecure && daemon.Registry != "" { args = append(args, "--insecure-registry", daemon.Registry) } if daemon.IPv6 { args = append(args, "--ipv6") } if len(daemon.Mirror) != 0 { args = append(args, "--registry-mirror", daemon.Mirror) } if len(daemon.Bip) != 0 { args = append(args, "--bip", daemon.Bip) } for _, dns := range daemon.DNS { args = append(args, "--dns", dns) } for _, dnsSearch := range daemon.DNSSearch { args = append(args, "--dns-search", dnsSearch) } if len(daemon.MTU) != 0 { args = append(args, "--mtu", daemon.MTU) } if daemon.Experimental { args = append(args, "--experimental") } return exec.Command(dockerdExe, args...) }