container

package
v0.0.0-...-bd1a880 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package container provides functionality for managing Docker containers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsErrContainerConflict

func IsErrContainerConflict(err error) bool

IsErrContainerConflict checks if an error is a Docker container conflict error.

Types

type ArchiveOptions

type ArchiveOptions struct {
	Path string // Path to the file or directory inside the container
}

ArchiveOptions contains options for getting/putting archives

type ChangeItem

type ChangeItem struct {
	Path string `json:"path"`
	Kind int    `json:"kind"` // 0: Modified, 1: Added, 2: Deleted
}

ChangeItem represents a change in the container's filesystem

type CommitOptions

type CommitOptions struct {
	Comment   string
	Author    string
	Reference string
	Config    *container.Config
	Pause     bool
	Changes   []string
}

CommitOptions contains options for committing a container

type CreateOptions

type CreateOptions struct {
	Name          string
	Config        *container.Config
	HostConfig    *container.HostConfig
	NetworkConfig *network.NetworkingConfig
	Platform      *specs.Platform
}

CreateOptions contains options for creating a container

type ExecOptions

type ExecOptions struct {
	Config      container.ExecOptions
	StartConfig container.ExecStartOptions
}

ExecOptions contains options for executing a command

type ExecResult

type ExecResult struct {
	ExecID       string
	OutputReader io.ReadCloser
	ErrorChannel <-chan error
}

ExecResult contains the result of an exec operation

type InspectionOptions

type InspectionOptions struct {
	All            bool              `json:"all"`
	Limit          int               `json:"limit"`
	Size           bool              `json:"size"`
	Filters        map[string]string `json:"filters"`
	SortBy         string            `json:"sort_by"`
	SortDescending bool              `json:"sort_descending"`
	Offset         int               `json:"offset"`
	Timeout        int               `json:"timeout"`
}

InspectionOptions defines options for listing and inspecting containers.

type Inspector

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

Inspector provides methods for inspecting containers.

func NewInspector

func NewInspector(client client.APIClient, logger *logrus.Logger) *Inspector

NewInspector creates a new Inspector.

func (*Inspector) CountContainers

func (i *Inspector) CountContainers(ctx context.Context, opts InspectionOptions) (int, error)

CountContainers counts containers matching the specified filters.

func (*Inspector) GetContainer

func (i *Inspector) GetContainer(ctx context.Context, idOrName string) (*models.Container, error)

GetContainer inspects a single container by ID or name.

func (*Inspector) GetContainerChanges

func (i *Inspector) GetContainerChanges(ctx context.Context, idOrName string) ([]containertypes.FilesystemChange, error)

GetContainerChanges retrieves changes on a container's filesystem.

func (*Inspector) GetContainerLogs

func (i *Inspector) GetContainerLogs(ctx context.Context, idOrName string, options containertypes.LogsOptions) (io.ReadCloser, error)

GetContainerLogs retrieves logs for a container.

func (*Inspector) GetContainerProcesses

func (i *Inspector) GetContainerProcesses(ctx context.Context, idOrName string, psArgs string) (containertypes.ContainerTopOKBody, error)

GetContainerProcesses retrieves the list of processes running inside a container.

func (*Inspector) GetContainerResourceUsage

func (i *Inspector) GetContainerResourceUsage(ctx context.Context, idOrName string) (*containertypes.StatsResponse, error)

GetContainerResourceUsage retrieves detailed resource usage statistics.

func (*Inspector) GetContainerStats

func (i *Inspector) GetContainerStats(ctx context.Context, idOrName string, stream bool) (io.ReadCloser, error)

GetContainerStats retrieves statistics for a container. If stream is true, it returns a stream of stats; otherwise, a single stats snapshot.

func (*Inspector) GetContainerStatsJSON

func (i *Inspector) GetContainerStatsJSON(ctx context.Context, idOrName string) (*containertypes.StatsResponse, error)

GetContainerStatsJSON retrieves a single stats snapshot and decodes it into StatsJSON.

func (*Inspector) GetContainers

func (i *Inspector) GetContainers(ctx context.Context, opts InspectionOptions) ([]*models.Container, error)

GetContainers lists containers based on the provided options.

type KillOptions

type KillOptions struct {
	Signal string
}

KillOptions contains options for killing a container

type ListOptions

type ListOptions struct {
	All     bool
	Latest  bool
	Since   string
	Before  string
	Limit   int
	Filters filters.Args
	Size    bool
}

ListOptions contains options for listing containers

type LogOptions

type LogOptions struct {
	ShowStdout bool
	ShowStderr bool
	Since      time.Time
	Until      time.Time
	Timestamps bool
	Follow     bool
	Tail       string
	Details    bool
}

LogOptions contains options for retrieving container logs

type PruneOptions

type PruneOptions struct {
	Filters filters.Args
}

PruneOptions contains options for pruning containers

type PruneResult

type PruneResult struct {
	ContainersDeleted []string
	SpaceReclaimed    uint64
}

PruneResult contains the result of a prune operation

type RemoveOptions

type RemoveOptions struct {
	Force         bool
	RemoveVolumes bool
	RemoveLinks   bool
}

RemoveOptions contains options for removing a container

type RestartOptions

type RestartOptions struct {
	Timeout int
}

RestartOptions contains options for restarting a container

type Service

type Service interface {
	ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, platform string, containerName string) (container.CreateResponse, error)
	ContainerStart(ctx context.Context, containerID string, options container.StartOptions) error
	ContainerStop(ctx context.Context, containerID string, options container.StopOptions) error
	ContainerRemove(ctx context.Context, containerID string, options container.RemoveOptions) error
	ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)       // Use types.ContainerJSON
	ContainerList(ctx context.Context, options container.ListOptions) ([]types.Container, error) // Use types.Container
	NetworkConnect(ctx context.Context, networkID, containerID string, config *network.EndpointSettings) error

	// --- Methods previously defined in this interface ---
	// List returns a list of containers (Potentially redundant with ContainerList, review usage)
	List(ctx context.Context, opts ListOptions) ([]models.Container, error)

	// Get returns detailed information about a container (Potentially redundant with ContainerInspect, review usage)
	Get(ctx context.Context, containerID string) (*models.Container, error)

	// Create creates a new container (Potentially redundant with ContainerCreate, review usage)
	Create(ctx context.Context, opts CreateOptions) (*models.Container, error)

	// Start starts a container (Original method signature)
	Start(ctx context.Context, containerID string, opts StartOptions) error

	// Stop stops a container (Original method signature)
	Stop(ctx context.Context, containerID string, opts StopOptions) error

	// Restart restarts a container
	Restart(ctx context.Context, containerID string, opts RestartOptions) error

	// Kill sends a signal to a container
	Kill(ctx context.Context, containerID string, opts KillOptions) error

	// Remove removes a container (Original method signature)
	Remove(ctx context.Context, containerID string, opts RemoveOptions) error

	// Logs returns the logs of a container
	Logs(ctx context.Context, containerID string, opts LogOptions) (io.ReadCloser, error)

	// Stats returns the stats of a container
	Stats(ctx context.Context, containerID string, opts StatsOptions) (models.ContainerStats, error)

	// StreamStats streams the stats of a container
	StreamStats(ctx context.Context, containerID string, opts StatsOptions) (<-chan models.ContainerStats, <-chan error)

	// Prune removes stopped containers
	Prune(ctx context.Context, opts PruneOptions) (PruneResult, error)

	// Rename renames a container
	Rename(ctx context.Context, containerID, newName string) error

	// Update updates container resource limits
	Update(ctx context.Context, containerID string, opts UpdateOptions) error

	// Pause pauses a container
	Pause(ctx context.Context, containerID string) error

	// Unpause unpauses a container
	Unpause(ctx context.Context, containerID string) error

	// Commit creates a new image from a container
	Commit(ctx context.Context, containerID string, opts CommitOptions) (string, error)

	// Wait waits for a container to exit
	Wait(ctx context.Context, containerID string, opts WaitOptions) (<-chan container.WaitResponse, <-chan error)

	// Exec executes a command in a container
	Exec(ctx context.Context, containerID string, opts ExecOptions) (ExecResult, error)

	// Top lists processes running inside a container
	Top(ctx context.Context, containerID string, psArgs string) (TopResult, error)

	// Changes inspects changes on a container's filesystem
	Changes(ctx context.Context, containerID string) ([]ChangeItem, error)

	// GetArchive retrieves a file or directory from a container as a tar archive
	GetArchive(ctx context.Context, containerID string, opts ArchiveOptions) (io.ReadCloser, models.ResourceStat, error)

	// PutArchive copies files/directories to a container.
	PutArchive(ctx context.Context, containerID string, path string, content io.Reader) error
}

Service defines the interface for container management operations Aligned with interfaces.ContainerService

func NewService

func NewService(dockerManager docker.Manager, log *logrus.Logger) Service

NewService creates a new container service implementation NOTE: This constructor was assumed earlier and is now being defined.

type StartOptions

type StartOptions struct {
	CheckpointID  string
	CheckpointDir string
}

StartOptions contains options for starting a container

type StatsOptions

type StatsOptions struct {
	Stream  bool
	OneShot bool
}

StatsOptions contains options for container stats

type StopOptions

type StopOptions struct {
	Timeout int
}

StopOptions contains options for stopping a container

type TopResult

type TopResult struct {
	Titles    []string   `json:"titles"`
	Processes [][]string `json:"processes"`
}

TopResult holds the result of a container top command

type UpdateOptions

type UpdateOptions struct {
	Resources     container.Resources
	RestartPolicy *container.RestartPolicy
}

UpdateOptions contains options for updating a container

type WaitOptions

type WaitOptions struct {
	Condition container.WaitCondition
}

WaitOptions contains options for waiting on a container

Directories

Path Synopsis
Package exec provides functionality for executing commands in Docker containers.
Package exec provides functionality for executing commands in Docker containers.
Package file provides utilities for container file operations
Package file provides utilities for container file operations
Package lifecycle implements Docker container lifecycle operations.
Package lifecycle implements Docker container lifecycle operations.
Package monitor provides utilities for monitoring Docker containers
Package monitor provides utilities for monitoring Docker containers
Package state provides utilities for container state management
Package state provides utilities for container state management

Jump to

Keyboard shortcuts

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