daemon

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 8, 2014 License: Apache-2.0 Imports: 45 Imported by: 0

README

This directory contains code pertaining to running containers and storing images

Code pertaining to running containers:

  • execdriver
  • networkdriver

Code pertaining to storing images:

  • graphdriver

Documentation

Index

Constants

View Source
const DefaultPathEnv = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
View Source
const MaxImageDepth = 127

Set the max depth to the aufs default that most kernels are compiled with For more information see: http://sourceforge.net/p/aufs/aufs3-standalone/ci/aufs3.12/tree/config.mk

Variables

View Source
var (
	ErrNotATTY               = errors.New("The PTY is not a file")
	ErrNoTTY                 = errors.New("No PTY found")
	ErrContainerStart        = errors.New("The container failed to start. Unknown error")
	ErrContainerStartTimeout = errors.New("The container failed to start due to timed out.")
)
View Source
var (
	DefaultDns = []string{"8.8.8.8", "8.8.4.4"}
)

Functions

func GetFullContainerName

func GetFullContainerName(name string) (string, error)

Types

type BindMap

type BindMap struct {
	SrcPath string
	DstPath string
	Mode    string
}

type Container

type Container struct {
	sync.Mutex

	ID string

	Created time.Time

	Path string
	Args []string

	Config *runconfig.Config
	State  State
	Image  string

	NetworkSettings *NetworkSettings

	ResolvConfPath string
	HostnamePath   string
	HostsPath      string
	Name           string
	Driver         string
	ExecDriver     string

	MountLabel, ProcessLabel string

	Volumes map[string]string
	// Store rw/ro in a separate structure to preserve reverse-compatibility on-disk.
	// Easier than migrating older container configs :)
	VolumesRW map[string]bool
	// contains filtered or unexported fields
}

func (*Container) Changes

func (container *Container) Changes() ([]archive.Change, error)

func (*Container) Copy

func (container *Container) Copy(resource string) (io.ReadCloser, error)
func (container *Container) DisableLink(name string)

func (*Container) Export

func (container *Container) Export() (archive.Archive, error)

func (*Container) ExportRw

func (container *Container) ExportRw() (archive.Archive, error)

func (*Container) Exposes

func (container *Container) Exposes(p nat.Port) bool

Returns true if the container exposes a certain port

func (*Container) FromDisk

func (container *Container) FromDisk() error

func (*Container) GetImage

func (container *Container) GetImage() (*image.Image, error)

func (*Container) GetMountLabel

func (container *Container) GetMountLabel() string

func (*Container) GetProcessLabel

func (container *Container) GetProcessLabel() string

func (*Container) GetPtyMaster

func (container *Container) GetPtyMaster() (*os.File, error)

func (*Container) GetSize

func (container *Container) GetSize() (int64, int64)

GetSize, return real size, virtual size

func (*Container) HostConfig

func (container *Container) HostConfig() *runconfig.HostConfig

func (*Container) Kill

func (container *Container) Kill() error

func (*Container) KillSig

func (container *Container) KillSig(sig int) error

func (*Container) Mount

func (container *Container) Mount() error

func (*Container) Output

func (container *Container) Output() (output []byte, err error)

func (*Container) Pause added in v0.12.0

func (container *Container) Pause() error

func (*Container) ReadLog

func (container *Container) ReadLog(name string) (io.Reader, error)

func (*Container) Resize

func (container *Container) Resize(h, w int) error

func (*Container) Restart

func (container *Container) Restart(seconds int) error

func (*Container) RootfsPath

func (container *Container) RootfsPath() string

This method must be exported to be used from the lxc template This directory is only usable when the container is running

func (*Container) Run

func (container *Container) Run() error

func (*Container) SetHostConfig

func (container *Container) SetHostConfig(hostConfig *runconfig.HostConfig)

func (*Container) Start

func (container *Container) Start() (err error)

func (*Container) StderrLogPipe

func (container *Container) StderrLogPipe() io.ReadCloser

func (*Container) StderrPipe

func (container *Container) StderrPipe() (io.ReadCloser, error)

func (*Container) StdinPipe

func (container *Container) StdinPipe() (io.WriteCloser, error)

func (*Container) StdoutLogPipe

func (container *Container) StdoutLogPipe() io.ReadCloser

func (*Container) StdoutPipe

func (container *Container) StdoutPipe() (io.ReadCloser, error)

func (*Container) Stop

func (container *Container) Stop(seconds int) error

func (*Container) ToDisk

func (container *Container) ToDisk() (err error)

func (*Container) Unmount

func (container *Container) Unmount() error

func (*Container) Unpause added in v0.12.0

func (container *Container) Unpause() error

func (*Container) Wait

func (container *Container) Wait() int

Wait blocks until the container stops running, then returns its exit code.

func (*Container) WaitTimeout

func (container *Container) WaitTimeout(timeout time.Duration) error

func (*Container) WriteHostConfig

func (container *Container) WriteHostConfig() (err error)

type Daemon

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

func NewDaemon

func NewDaemon(config *daemonconfig.Config, eng *engine.Engine) (*Daemon, error)

FIXME: harmonize with NewGraph()

func NewDaemonFromDirectory

func NewDaemonFromDirectory(config *daemonconfig.Config, eng *engine.Engine) (*Daemon, error)

func (*Daemon) Attach

func (daemon *Daemon) Attach(container *Container, stdin io.ReadCloser, stdinCloser io.Closer, stdout io.Writer, stderr io.Writer) chan error

func (*Daemon) Changes

func (daemon *Daemon) Changes(container *Container) ([]archive.Change, error)

func (*Daemon) Children

func (daemon *Daemon) Children(name string) (map[string]*Container, error)

func (*Daemon) Close

func (daemon *Daemon) Close() error

func (*Daemon) Commit

func (daemon *Daemon) Commit(container *Container, repository, tag, comment, author string, config *runconfig.Config) (*image.Image, error)

Commit creates a new filesystem image from the current state of a container. The image can optionally be tagged into a repository

func (*Daemon) Config

func (daemon *Daemon) Config() *daemonconfig.Config

func (*Daemon) ContainerGraph

func (daemon *Daemon) ContainerGraph() *graphdb.Database

func (*Daemon) ContainerInspect added in v0.12.0

func (daemon *Daemon) ContainerInspect(job *engine.Job) engine.Status

func (*Daemon) Create

func (daemon *Daemon) Create(config *runconfig.Config, name string) (*Container, []string, error)

Create creates a new container from the given configuration with a given name.

func (*Daemon) Destroy

func (daemon *Daemon) Destroy(container *Container) error

Destroy unregisters a container from the daemon and cleanly removes its contents from the filesystem.

func (*Daemon) Diff

func (daemon *Daemon) Diff(container *Container) (archive.Archive, error)

func (*Daemon) ExecutionDriver

func (daemon *Daemon) ExecutionDriver() execdriver.Driver

func (*Daemon) Exists

func (daemon *Daemon) Exists(id string) bool

Exists returns a true if a container of the specified ID or name exists, false otherwise.

func (*Daemon) Get

func (daemon *Daemon) Get(name string) *Container

Get looks for a container by the specified ID or name, and returns it. If the container is not found, or if an error occurs, nil is returned.

func (*Daemon) GetByName

func (daemon *Daemon) GetByName(name string) (*Container, error)

func (*Daemon) Graph

func (daemon *Daemon) Graph() *graph.Graph

FIXME: this is a convenience function for integration tests which need direct access to daemon.graph. Once the tests switch to using engine and jobs, this method can go away.

func (*Daemon) GraphDriver

func (daemon *Daemon) GraphDriver() graphdriver.Driver

func (*Daemon) Install added in v0.12.0

func (daemon *Daemon) Install(eng *engine.Engine) error

Install installs daemon capabilities to eng.

func (*Daemon) Kill

func (daemon *Daemon) Kill(c *Container, sig int) error

func (*Daemon) List

func (daemon *Daemon) List() []*Container

List returns an array of all containers registered in the daemon.

func (*Daemon) LogToDisk

func (daemon *Daemon) LogToDisk(src *utils.WriteBroadcaster, dst, stream string) error

func (*Daemon) Mount

func (daemon *Daemon) Mount(container *Container) error

func (*Daemon) Nuke

func (daemon *Daemon) Nuke() error

Nuke kills all containers then removes all content from the content root, including images, volumes and container filesystems. Again: this will remove your entire docker daemon!

func (*Daemon) Pause added in v0.12.0

func (daemon *Daemon) Pause(c *Container) error

func (*Daemon) Register

func (daemon *Daemon) Register(container *Container) error

Register makes a container object usable by the daemon as <container.ID> This is a wrapper for register

func (daemon *Daemon) RegisterLink(parent, child *Container, alias string) error
func (daemon *Daemon) RegisterLinks(container *Container, hostConfig *runconfig.HostConfig) error

func (*Daemon) Repositories

func (daemon *Daemon) Repositories() *graph.TagStore

func (*Daemon) Run

func (daemon *Daemon) Run(c *Container, pipes *execdriver.Pipes, startCallback execdriver.StartCallback) (int, error)

func (*Daemon) SetServer

func (daemon *Daemon) SetServer(server Server)

func (*Daemon) SystemConfig

func (daemon *Daemon) SystemConfig() *sysinfo.SysInfo

func (*Daemon) SystemInitPath

func (daemon *Daemon) SystemInitPath() string

func (*Daemon) Unmount

func (daemon *Daemon) Unmount(container *Container) error

func (*Daemon) Unpause added in v0.12.0

func (daemon *Daemon) Unpause(c *Container) error

func (*Daemon) Volumes

func (daemon *Daemon) Volumes() *graph.Graph

type History

type History []*Container

History is a convenience type for storing a list of containers, ordered by creation date.

func (*History) Add

func (history *History) Add(container *Container)

func (*History) Len

func (history *History) Len() int

func (*History) Less

func (history *History) Less(i, j int) bool

func (*History) Sort added in v0.12.0

func (history *History) Sort()

func (*History) Swap

func (history *History) Swap(i, j int)

type NetworkSettings

type NetworkSettings struct {
	IPAddress   string
	IPPrefixLen int
	Gateway     string
	Bridge      string
	PortMapping map[string]PortMapping // Deprecated
	Ports       nat.PortMap
}

func (*NetworkSettings) PortMappingAPI

func (settings *NetworkSettings) PortMappingAPI() *engine.Table

type PortMapping

type PortMapping map[string]string // Deprecated

FIXME: move deprecated port stuff to nat to clean up the core.

type Server

type Server interface {
	LogEvent(action, id, from string) *utils.JSONMessage
	IsRunning() bool // returns true if the server is currently in operation
}

type State

type State struct {
	sync.RWMutex
	Running    bool
	Paused     bool
	Pid        int
	ExitCode   int
	StartedAt  time.Time
	FinishedAt time.Time
}

func (*State) GetExitCode

func (s *State) GetExitCode() int

func (*State) IsPaused added in v0.12.0

func (s *State) IsPaused() bool

func (*State) IsRunning

func (s *State) IsRunning() bool

func (*State) SetPaused added in v0.12.0

func (s *State) SetPaused()

func (*State) SetRunning

func (s *State) SetRunning(pid int)

func (*State) SetStopped

func (s *State) SetStopped(exitCode int)

func (*State) SetUnpaused added in v0.12.0

func (s *State) SetUnpaused()

func (*State) String

func (s *State) String() string

String returns a human-readable description of the state

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL