github.com/moby/docker@v26.1.3+incompatible/daemon/start_linux.go (about)

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