@@ -39,8 +39,10 @@ type nopLog struct{}
3939
4040func (nopLog ) Logf (string , ... interface {}) {}
4141
42- const defaultDockerdBinary = "dockerd"
43- const containerdSocket = "/var/run/docker/containerd/containerd.sock"
42+ const (
43+ defaultDockerdBinary = "dockerd"
44+ defaultContainerdSocket = "/var/run/docker/containerd/containerd.sock"
45+ )
4446
4547var errDaemonNotStarted = errors .New ("daemon not started" )
4648
@@ -75,6 +77,7 @@ type Daemon struct {
7577 log LogT
7678 pidFile string
7779 args []string
80+ containerdSocket string
7881
7982 // swarm related field
8083 swarmListenAddr string
@@ -120,11 +123,12 @@ func NewDaemon(workingDir string, ops ...Option) (*Daemon, error) {
120123 storageDriver : storageDriver ,
121124 userlandProxy : userlandProxy ,
122125 // dxr stands for docker-execroot (shortened for avoiding unix(7) path length limitation)
123- execRoot : filepath .Join (os .TempDir (), "dxr" , id ),
124- dockerdBinary : defaultDockerdBinary ,
125- swarmListenAddr : defaultSwarmListenAddr ,
126- SwarmPort : DefaultSwarmPort ,
127- log : nopLog {},
126+ execRoot : filepath .Join (os .TempDir (), "dxr" , id ),
127+ dockerdBinary : defaultDockerdBinary ,
128+ swarmListenAddr : defaultSwarmListenAddr ,
129+ SwarmPort : DefaultSwarmPort ,
130+ log : nopLog {},
131+ containerdSocket : defaultContainerdSocket ,
128132 }
129133
130134 for _ , op := range ops {
@@ -252,17 +256,20 @@ func (d *Daemon) StartWithLogFile(out *os.File, providedArgs ...string) error {
252256 d .pidFile = filepath .Join (d .Folder , "docker.pid" )
253257 }
254258
255- d .args = append (d .GlobalFlags ,
256- "--containerd" , containerdSocket ,
257- "--data-root" , d .Root ,
259+ d .args = append (d .GlobalFlags , "--data-root" , d .Root )
260+ if d .containerdSocket != "" {
261+ d .args = append (d .args , "--containerd" , d .containerdSocket )
262+ }
263+ d .args = append (d .args ,
258264 "--exec-root" , d .execRoot ,
259265 "--pidfile" , d .pidFile ,
260266 fmt .Sprintf ("--userland-proxy=%t" , d .userlandProxy ),
261267 "--containerd-namespace" , d .id ,
262268 "--containerd-plugins-namespace" , d .id + "p" ,
263269 )
270+
264271 if d .defaultCgroupNamespaceMode != "" {
265- d .args = append (d .args , [] string { "--default-cgroupns-mode" , d .defaultCgroupNamespaceMode } ... )
272+ d .args = append (d .args , "--default-cgroupns-mode" , d .defaultCgroupNamespaceMode )
266273 }
267274 if d .experimental {
268275 d .args = append (d .args , "--experimental" )
@@ -271,10 +278,10 @@ func (d *Daemon) StartWithLogFile(out *os.File, providedArgs ...string) error {
271278 d .args = append (d .args , "--init" )
272279 }
273280 if ! (d .UseDefaultHost || d .UseDefaultTLSHost ) {
274- d .args = append (d .args , [] string { "--host" , d .Sock ()} ... )
281+ d .args = append (d .args , "--host" , d .Sock ())
275282 }
276283 if root := os .Getenv ("DOCKER_REMAP_ROOT" ); root != "" {
277- d .args = append (d .args , [] string { "--userns-remap" , root } ... )
284+ d .args = append (d .args , "--userns-remap" , root )
278285 }
279286
280287 // If we don't explicitly set the log-level or debug flag(-D) then
0 commit comments