github.com/tonistiigi/docker@v0.10.1-0.20240229224939-974013b0dc6a/daemon/start_linux.go (about) 1 package daemon // import "github.com/docker/docker/daemon" 2 3 import ( 4 "context" 5 "fmt" 6 7 specs "github.com/opencontainers/runtime-spec/specs-go" 8 9 "github.com/docker/docker/container" 10 "github.com/docker/docker/errdefs" 11 "github.com/docker/docker/libcontainerd/types" 12 "github.com/docker/docker/oci" 13 ) 14 15 // initializeCreatedTask performs any initialization that needs to be done to 16 // prepare a freshly-created task to be started. 17 func (daemon *Daemon) initializeCreatedTask(ctx context.Context, tsk types.Task, container *container.Container, spec *specs.Spec) error { 18 if !container.Config.NetworkDisabled { 19 nspath, ok := oci.NamespacePath(spec, specs.NetworkNamespace) 20 if ok && nspath == "" { // the runtime has been instructed to create a new network namespace for tsk. 21 sb, err := daemon.netController.GetSandbox(container.ID) 22 if err != nil { 23 return errdefs.System(err) 24 } 25 if err := sb.SetKey(fmt.Sprintf("/proc/%d/ns/net", tsk.Pid())); err != nil { 26 return errdefs.System(err) 27 } 28 } 29 } 30 return nil 31 }