package commands

import "github.com/containerd/containerd/cmd/ctr/commands"

Index

Constants

const (

	// CtrCniMetadataExtension is an extension name that identify metadata of container in CreateContainerRequest
	CtrCniMetadataExtension = "ctr.cni-containerd.metadata"
)

Variables

var (
	SnapshotterFlags = []cli.Flag{
		cli.StringFlag{
			Name:   "snapshotter",
			Usage:  "snapshotter name. Empty value stands for the default value.",
			EnvVar: "CONTAINERD_SNAPSHOTTER",
		},
	}

	SnapshotterLabels = cli.StringSliceFlag{
		Name:  "snapshotter-label",
		Usage: "Labels added to the new snapshot for this container.",
	}

	LabelFlag = cli.StringSliceFlag{
		Name:  "label",
		Usage: "Labels to attach to the image",
	}

	RegistryFlags = []cli.Flag{
		cli.BoolFlag{
			Name:  "skip-verify,k",
			Usage: "Skip SSL certificate validation",
		},
		cli.BoolFlag{
			Name:  "plain-http",
			Usage: "Allow connections using plain HTTP",
		},
		cli.StringFlag{
			Name:  "user,u",
			Usage: "User[:password] Registry user and password",
		},
		cli.StringFlag{
			Name:  "refresh",
			Usage: "Refresh token for authorization server",
		},
		cli.StringFlag{
			Name: "hosts-dir",

			Usage: "Custom hosts configuration directory",
		},
		cli.StringFlag{
			Name:  "tlscacert",
			Usage: "Path to TLS root CA",
		},
		cli.StringFlag{
			Name:  "tlscert",
			Usage: "Path to TLS client certificate",
		},
		cli.StringFlag{
			Name:  "tlskey",
			Usage: "Path to TLS client key",
		},
		cli.BoolFlag{
			Name:  "http-dump",
			Usage: "Dump all HTTP request/responses when interacting with container registry",
		},
		cli.BoolFlag{
			Name:  "http-trace",
			Usage: "Enable HTTP tracing for registry interactions",
		},
	}

	ContainerFlags = []cli.Flag{
		cli.StringFlag{
			Name:  "config,c",
			Usage: "Path to the runtime-specific spec config file",
		},
		cli.StringFlag{
			Name:  "cwd",
			Usage: "Specify the working directory of the process",
		},
		cli.StringSliceFlag{
			Name:  "env",
			Usage: "Specify additional container environment variables (e.g. FOO=bar)",
		},
		cli.StringFlag{
			Name:  "env-file",
			Usage: "Specify additional container environment variables in a file(e.g. FOO=bar, one per line)",
		},
		cli.StringSliceFlag{
			Name:  "label",
			Usage: "Specify additional labels (e.g. foo=bar)",
		},
		cli.StringSliceFlag{
			Name:  "annotation",
			Usage: "Specify additional OCI annotations (e.g. foo=bar)",
		},
		cli.StringSliceFlag{
			Name:  "mount",
			Usage: "Specify additional container mount (e.g. type=bind,src=/tmp,dst=/host,options=rbind:ro)",
		},
		cli.BoolFlag{
			Name:  "net-host",
			Usage: "Enable host networking for the container",
		},
		cli.BoolFlag{
			Name:  "privileged",
			Usage: "Run privileged container",
		},
		cli.BoolFlag{
			Name:  "read-only",
			Usage: "Set the containers filesystem as readonly",
		},
		cli.StringFlag{
			Name:  "runtime",
			Usage: "Runtime name or absolute path to runtime binary",
			Value: defaults.DefaultRuntime,
		},
		cli.StringFlag{
			Name:  "runtime-config-path",
			Usage: "Optional runtime config path",
		},
		cli.BoolFlag{
			Name:  "tty,t",
			Usage: "Allocate a TTY for the container",
		},
		cli.StringSliceFlag{
			Name:  "with-ns",
			Usage: "Specify existing Linux namespaces to join at container runtime (format '<nstype>:<path>')",
		},
		cli.StringFlag{
			Name:  "pid-file",
			Usage: "File path to write the task's pid",
		},
		cli.IntSliceFlag{
			Name:  "gpus",
			Usage: "Add gpus to the container",
		},
		cli.BoolFlag{
			Name:  "allow-new-privs",
			Usage: "Turn off OCI spec's NoNewPrivileges feature flag",
		},
		cli.Uint64Flag{
			Name:  "memory-limit",
			Usage: "Memory limit (in bytes) for the container",
		},
		cli.StringSliceFlag{
			Name:  "cap-add",
			Usage: "Add Linux capabilities (Set capabilities with 'CAP_' prefix)",
		},
		cli.StringSliceFlag{
			Name:  "cap-drop",
			Usage: "Drop Linux capabilities (Set capabilities with 'CAP_' prefix)",
		},
		cli.BoolFlag{
			Name:  "seccomp",
			Usage: "Enable the default seccomp profile",
		},
		cli.StringFlag{
			Name:  "seccomp-profile",
			Usage: "File path to custom seccomp profile. seccomp must be set to true, before using seccomp-profile",
		},
		cli.StringFlag{
			Name:  "apparmor-default-profile",
			Usage: "Enable AppArmor with the default profile with the specified name, e.g. \"cri-containerd.apparmor.d\"",
		},
		cli.StringFlag{
			Name:  "apparmor-profile",
			Usage: "Enable AppArmor with an existing custom profile",
		},
		cli.StringFlag{
			Name:  "blockio-config-file",
			Usage: "File path to blockio class definitions. By default class definitions are not loaded.",
		},
		cli.StringFlag{
			Name:  "blockio-class",
			Usage: "Name of the blockio class to associate the container with",
		},
		cli.StringFlag{
			Name:  "rdt-class",
			Usage: "" /* 135 byte string literal not displayed */,
		},
		cli.StringFlag{
			Name:  "hostname",
			Usage: "Set the container's host name",
		},
		cli.StringFlag{
			Name:  "user,u",
			Usage: "Username or user id, group optional (format: <name|uid>[:<group|gid>])",
		},
	}
)
var PushTracker = docker.NewInMemoryTracker()

PushTracker returns a new InMemoryTracker which tracks the ref status

Functions

func AnnotationArgs

func AnnotationArgs(annoStrings []string) (map[string]string, error)

AnnotationArgs returns a map of annotation key,value pairs.

func AppContext

func AppContext(context *cli.Context) (gocontext.Context, gocontext.CancelFunc)

AppContext returns the context for a command. Should only be called once per command, near the start.

This will ensure the namespace is picked up and set the timeout, if one is defined.

func ForwardAllSignals

func ForwardAllSignals(ctx gocontext.Context, task killer) chan os.Signal

ForwardAllSignals forwards signals

func FullID

func FullID(ctx context.Context, c containerd.Container) string

func GetResolver

func GetResolver(ctx gocontext.Context, clicontext *cli.Context) (remotes.Resolver, error)

GetResolver prepares the resolver from the environment and options

func LabelArgs

func LabelArgs(labelStrings []string) map[string]string

LabelArgs returns a map of label key,value pairs

func NewClient

NewClient returns a new containerd client

func NewDebugClientTrace

func NewDebugClientTrace(ctx gocontext.Context) *httptrace.ClientTrace

NewDebugClientTrace returns a Go http trace client predefined to write DNS and connection information to the log. This is used via the --http-trace flag on push and pull operations in ctr.

func NewStaticCredentials

func NewStaticCredentials(ctx gocontext.Context, clicontext *cli.Context, ref string) (image.CredentialHelper, error)

NewStaticCredentials gets credentials from passing in cli context

func ObjectWithLabelArgs

func ObjectWithLabelArgs(clicontext *cli.Context) (string, map[string]string)

ObjectWithLabelArgs returns the first arg and a LabelArgs object

func PrintAsJSON

func PrintAsJSON(x interface{})

PrintAsJSON prints input in JSON format

func StopCatch

func StopCatch(sigc chan os.Signal)

StopCatch stops and closes a channel

func WritePidFile

func WritePidFile(path string, pid int) error

WritePidFile writes the pid atomically to a file

Types

type DebugTransport

type DebugTransport struct {
	// contains filtered or unexported fields
}

DebugTransport wraps the underlying http.RoundTripper interface and dumps all requests/responses to the writer.

func (DebugTransport) RoundTrip

func (t DebugTransport) RoundTrip(req *http.Request) (*http.Response, error)

RoundTrip dumps request/responses and executes the request using the underlying transport.

type NetworkMetaData

type NetworkMetaData struct {
	EnableCni bool
}

ctr pass cni network metadata to containerd if ctr run use option of --cni

Source Files

client.go cni.go commands.go commands_unix.go resolver.go signals.go signals_notlinux.go

Directories

PathSynopsis
cmd/ctr/commands/containers
cmd/ctr/commands/content
cmd/ctr/commands/events
cmd/ctr/commands/images
cmd/ctr/commands/info
cmd/ctr/commands/install
cmd/ctr/commands/leases
cmd/ctr/commands/namespaces
cmd/ctr/commands/oci
cmd/ctr/commands/plugins
cmd/ctr/commands/pprof
cmd/ctr/commands/run
cmd/ctr/commands/sandboxes
cmd/ctr/commands/shim
cmd/ctr/commands/snapshots
cmd/ctr/commands/tasks
cmd/ctr/commands/version
Version
v1.7.0-beta.4
Published
Feb 16, 2023
Platform
js/wasm
Imports
30 packages
Last checked
45 seconds ago

Tools for package owners.