Documentation
¶
Overview ¶
Package podman provides a client wrapper for interacting with Podman.
Index ¶
- type Client
- func (c *Client) Exec(containerName string, command []string) *exec.Cmd
- func (c *Client) ImageExists(ctx context.Context, image string) (bool, error)
- func (c *Client) ListDanglingImages(ctx context.Context) ([]ImageInfo, error)
- func (c *Client) ListImages(ctx context.Context) ([]ImageInfo, error)
- func (c *Client) ListStoppedContainers(ctx context.Context) ([]ContainerInfo, error)
- func (c *Client) Load(ctx context.Context, archivePath string) (string, error)
- func (c *Client) PruneContainers(ctx context.Context) (int, error)
- func (c *Client) PruneImages(ctx context.Context) (int, error)
- func (c *Client) Pull(ctx context.Context, image string) error
- func (c *Client) Push(ctx context.Context, image string) error
- func (c *Client) RemoveContainer(ctx context.Context, idOrName string) error
- func (c *Client) RemoveImage(ctx context.Context, image string) error
- func (c *Client) Run(ctx context.Context, cfg *ContainerConfig) (*ContainerResult, error)
- func (c *Client) RunWithStreaming(ctx context.Context, cfg *ContainerConfig, stdout, stderr io.Writer) (*ContainerResult, error)
- func (c *Client) Tag(ctx context.Context, source, target string) error
- type ContainerConfig
- type ContainerInfo
- type ContainerResult
- type ImageInfo
- type Mount
- type ResourceLimits
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client provides methods for interacting with Podman.
func (*Client) ImageExists ¶
ImageExists checks if an image exists locally.
func (*Client) ListDanglingImages ¶
ListDanglingImages returns images that are not tagged.
func (*Client) ListImages ¶
ListImages returns all images.
func (*Client) ListStoppedContainers ¶
func (c *Client) ListStoppedContainers(ctx context.Context) ([]ContainerInfo, error)
ListStoppedContainers returns all stopped containers.
func (*Client) PruneContainers ¶
PruneContainers removes all stopped containers.
func (*Client) PruneImages ¶
PruneImages removes unused images.
func (*Client) RemoveContainer ¶
RemoveContainer removes a container by ID or name.
func (*Client) RemoveImage ¶
RemoveImage removes an image.
func (*Client) Run ¶
func (c *Client) Run(ctx context.Context, cfg *ContainerConfig) (*ContainerResult, error)
Run creates and runs a container, waiting for it to complete. Returns the container result including exit code and output.
func (*Client) RunWithStreaming ¶
func (c *Client) RunWithStreaming(ctx context.Context, cfg *ContainerConfig, stdout, stderr io.Writer) (*ContainerResult, error)
RunWithStreaming creates and runs a container, streaming output to the provided writers.
type ContainerConfig ¶
type ContainerConfig struct {
Name string
Image string
Entrypoint []string // Override container entrypoint
Command []string
WorkDir string
Env map[string]string
Mounts []Mount
Limits *ResourceLimits
User string
NetworkMode string
Remove bool // Remove container after exit
Privileged bool // Run container in privileged mode
UserNS string // User namespace mode (e.g., "keep-id", "host")
}
ContainerConfig holds configuration for creating a container.
type ContainerInfo ¶
type ContainerInfo struct {
ID string
Name string
Image string
Status string
CreatedAt time.Time
StoppedAt time.Time
}
ContainerInfo holds information about a container.
type ContainerResult ¶
ContainerResult holds the result of a container execution.
type ResourceLimits ¶
type ResourceLimits struct {
CPUQuota float64 // CPU quota in cores (e.g., 0.5 = half a core)
MemoryMB int64 // Memory limit in megabytes
PidsLimit int64 // Maximum number of PIDs
}
ResourceLimits defines resource constraints for a container.
func ResourceLimitsFromSpec ¶
func ResourceLimitsFromSpec(spec *models.ResourceSpec) *ResourceLimits
ResourceLimitsFromSpec returns resource limits from a ResourceSpec. If spec is nil, returns default limits (0.5 CPU, 512MB).