dotcloud/docker

View on GitHub
daemon/start_linux.go

Summary

Maintainability
A
0 mins
Test Coverage
package daemon // import "github.com/docker/docker/daemon"

import (
    "context"

    "github.com/docker/docker/container"
    "github.com/docker/docker/errdefs"
    "github.com/docker/docker/libcontainerd/types"
    "github.com/docker/docker/oci"
    specs "github.com/opencontainers/runtime-spec/specs-go"
    "go.opentelemetry.io/otel"
)

// initializeCreatedTask performs any initialization that needs to be done to
// prepare a freshly-created task to be started.
func (daemon *Daemon) initializeCreatedTask(ctx context.Context, tsk types.Task, container *container.Container, spec *specs.Spec) error {
    ctx, span := otel.Tracer("").Start(ctx, "daemon.initializeCreatedTask")
    defer span.End()

    if !container.Config.NetworkDisabled {
        nspath, ok := oci.NamespacePath(spec, specs.NetworkNamespace)
        if ok && nspath == "" { // the runtime has been instructed to create a new network namespace for tsk.
            sb, err := daemon.netController.GetSandbox(container.ID)
            if err != nil {
                return errdefs.System(err)
            }
            return sb.FinishConfig(ctx)
        }
    }
    return nil
}