package libcontainer

import "github.com/dotcloud/docker/pkg/libcontainer"

Index

Variables

var (
	ErrUnkownNamespace  = errors.New("Unknown namespace")
	ErrUnkownCapability = errors.New("Unknown capability")
	ErrUnsupported      = errors.New("Unsupported method")
)

Types

type Capabilities

type Capabilities []*Capability

func (Capabilities) Contains

func (c Capabilities) Contains(capp string) bool

Contains returns true if the specified Capability is in the slice

type Capability

type Capability struct {
	Key   string
	Value capability.Cap
}

func GetCapability

func GetCapability(key string) *Capability

func (*Capability) MarshalJSON

func (c *Capability) MarshalJSON() ([]byte, error)

func (*Capability) String

func (c *Capability) String() string

func (*Capability) UnmarshalJSON

func (c *Capability) UnmarshalJSON(src []byte) error

type Container

type Container struct {
	Hostname     string          `json:"hostname,omitempty"`      // hostname
	ReadonlyFs   bool            `json:"readonly_fs,omitempty"`   // set the containers rootfs as readonly
	NoPivotRoot  bool            `json:"no_pivot_root,omitempty"` // this can be enabled if you are running in ramdisk
	User         string          `json:"user,omitempty"`          // user to execute the process as
	WorkingDir   string          `json:"working_dir,omitempty"`   // current working directory
	Env          []string        `json:"environment,omitempty"`   // environment to set
	Tty          bool            `json:"tty,omitempty"`           // setup a proper tty or not
	Namespaces   Namespaces      `json:"namespaces,omitempty"`    // namespaces to apply
	Capabilities Capabilities    `json:"capabilities,omitempty"`  // capabilities to drop
	Networks     []*Network      `json:"networks,omitempty"`      // nil for host's network stack
	Cgroups      *cgroups.Cgroup `json:"cgroups,omitempty"`       // cgroups
	Context      Context         `json:"context,omitempty"`       // generic context for specific options (apparmor, selinux)
}

Container defines configuration options for how a container is setup inside a directory and how a process should be executed

type Context

type Context map[string]string

Context is a generic key value pair that allows arbatrary data to be sent

type Namespace

type Namespace struct {
	Key   string
	Value int
	File  string
}

func GetNamespace

func GetNamespace(key string) *Namespace

func (*Namespace) MarshalJSON

func (ns *Namespace) MarshalJSON() ([]byte, error)

func (*Namespace) String

func (ns *Namespace) String() string

func (*Namespace) UnmarshalJSON

func (ns *Namespace) UnmarshalJSON(src []byte) error

type Namespaces

type Namespaces []*Namespace

func (Namespaces) Contains

func (n Namespaces) Contains(ns string) bool

Contains returns true if the specified Namespace is in the slice

type Network

type Network struct {
	Type    string  `json:"type,omitempty"`    // type of networking to setup i.e. veth, macvlan, etc
	Context Context `json:"context,omitempty"` // generic context for type specific networking options
	Address string  `json:"address,omitempty"`
	Gateway string  `json:"gateway,omitempty"`
	Mtu     int     `json:"mtu,omitempty"`
}

Network defines configuration for a container's networking stack

The network configuration can be omited from a container causing the container to be setup with the host's networking stack

Source Files

container.go types.go

Directories

PathSynopsis
pkg/libcontainer/apparmor
pkg/libcontainer/capabilities
pkg/libcontainer/network
pkg/libcontainer/nsinit
pkg/libcontainer/nsinit/nsinit
pkg/libcontainer/utils
Version
v0.9.0
Published
Mar 10, 2014
Platform
darwin/amd64
Imports
4 packages
Last checked
56 seconds ago

Tools for package owners.