Documentation
¶
Overview ¶
Package dockercompat mimics `docker inspect` objects.
Index ¶
- func ParseMountProperties(option []string) (rw bool, propagation string)
- type CPUSettings
- type ClientVersion
- type ComponentVersion
- type Config
- type Container
- type ContainerState
- type DNSSettings
- type DefaultNetworkSettings
- type DeviceMapping
- type EndpointResource
- type GraphDriverData
- type HostConfig
- type HostConfigLabel
- type IPAM
- type IPAMConfig
- type Image
- type ImageMetadata
- type Info
- type LinuxBlkioSettings
- type MemorySetting
- type MountPoint
- type Network
- type NetworkEndpointSettings
- type NetworkSettings
- type PluginsInfo
- type RootFS
- type ServerVersion
- type VersionInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseMountProperties ¶
Types ¶
type CPUSettings ¶ added in v2.0.5
type ClientVersion ¶
type ClientVersion struct {
Version string
GitCommit string
GoVersion string
Os string // GOOS
Arch string // GOARCH
Components []ComponentVersion // nerdctl extension
}
ClientVersion is from https://github.com/docker/cli/blob/v20.10.8/cli/command/system/version.go#L74-L87
type ComponentVersion ¶
type ComponentVersion struct {
Name string
Version string
Details map[string]string `json:",omitempty"`
}
ComponentVersion describes the version information for a specific component. From https://github.com/moby/moby/blob/v20.10.8/api/types/types.go#L112-L117
type Config ¶
type Config struct {
Hostname string `json:",omitempty"` // Hostname
Domainname string `json:",omitempty"` // Domainname
User string `json:",omitempty"` // User that will run the command(s) inside the container, also support user:group
AttachStdin bool // Attach the standard input, makes possible user interaction
// TODO: AttachStdout bool // Attach the standard output
// TODO: AttachStderr bool // Attach the standard error
ExposedPorts nat.PortSet `json:",omitempty"` // List of exposed ports
// TODO: Tty bool // Attach standard streams to a tty, including stdin if it is not closed.
// TODO: OpenStdin bool // Open stdin
// TODO: StdinOnce bool // If true, close stdin after the 1 attached client disconnects.
Env []string `json:",omitempty"` // List of environment variable to set in the container
Cmd []string `json:",omitempty"` // Command to run when starting the container
// TODO Healthcheck *HealthConfig `json:",omitempty"` // Healthcheck describes how to check the container is healthy
// TODO: ArgsEscaped bool `json:",omitempty"` // True if command is already escaped (meaning treat as a command line) (Windows specific).
// TODO: Image string // Name of the image as it was passed by the operator (e.g. could be symbolic)
Volumes map[string]struct{} `json:",omitempty"` // List of volumes (mounts) used for the container
WorkingDir string `json:",omitempty"` // Current directory (PWD) in the command will be launched
Entrypoint []string `json:",omitempty"` // Entrypoint to run when starting the container
// TODO: NetworkDisabled bool `json:",omitempty"` // Is network disabled
// TODO: MacAddress string `json:",omitempty"` // Mac Address of the container
// TODO: OnBuild []string // ONBUILD metadata that were defined on the image Dockerfile
Labels map[string]string `json:",omitempty"` // List of labels set to this container
}
config is from https://github.com/moby/moby/blob/8dbd90ec00daa26dc45d7da2431c965dec99e8b4/api/types/container/config.go#L37-L69
type Container ¶
type Container struct {
ID string `json:"Id"`
Created string
Path string
Args []string
State *ContainerState
Image string
ResolvConfPath string
HostnamePath string
HostsPath string
LogPath string
// Unimplemented: Node *ContainerNode `json:",omitempty"` // Node is only propagated by Docker Swarm standalone API
Name string
RestartCount int
Driver string
Platform string
// TODO: MountLabel string
// TODO: ProcessLabel string
AppArmorProfile string
// TODO: ExecIDs []string
HostConfig *HostConfig
// TODO: GraphDriver GraphDriverData
SizeRw *int64 `json:",omitempty"`
SizeRootFs *int64 `json:",omitempty"`
Mounts []MountPoint
Config *Config
NetworkSettings *NetworkSettings
}
Container mimics a `docker container inspect` object. From https://github.com/moby/moby/blob/v20.10.1/api/types/types.go#L340-L374
type ContainerState ¶
type ContainerState struct {
Status string // String representation of the container state. Can be one of "created", "running", "paused", "restarting", "removing", "exited", or "dead"
Running bool
Paused bool
Restarting bool
// TODO: OOMKilled bool
// TODO: Dead bool
Pid int
ExitCode int
Error string
StartedAt string
FinishedAt string
}
ContainerState is from https://github.com/moby/moby/blob/v20.10.1/api/types/types.go#L313-L326
type DNSSettings ¶ added in v2.0.4
type DefaultNetworkSettings ¶
type DefaultNetworkSettings struct {
// TODO EndpointID string // EndpointID uniquely represents a service endpoint in a Sandbox
// TODO Gateway string // Gateway holds the gateway address for the network
GlobalIPv6Address string // GlobalIPv6Address holds network's global IPv6 address
GlobalIPv6PrefixLen int // GlobalIPv6PrefixLen represents mask length of network's global IPv6 address
IPAddress string // IPAddress holds the IPv4 address for the network
IPPrefixLen int // IPPrefixLen represents mask length of network's IPv4 address
// TODO IPv6Gateway string // IPv6Gateway holds gateway address specific for IPv6
MacAddress string // MacAddress holds the MAC address for the network
}
DefaultNetworkSettings is from https://github.com/moby/moby/blob/v20.10.1/api/types/types.go#L405-L414
type DeviceMapping ¶ added in v2.0.4
type EndpointResource ¶ added in v2.0.5
type EndpointResource struct {
Name string `json:"Name"`
}
type GraphDriverData ¶
From: https://github.com/moby/moby/blob/v26.1.2/api/types/graph_driver_data.go
type HostConfig ¶ added in v2.0.4
type HostConfig struct {
// Binds []string // List of volume bindings for this container
ContainerIDFile string // File (path) where the containerId is written
LogConfig loggerLogConfig // Configuration of the logs for this container
// NetworkMode NetworkMode // Network mode to use for the container
PortBindings nat.PortMap // Port mapping between the exposed port (container) and the host
CgroupnsMode string // Cgroup namespace mode to use for the container
DNS []string `json:"Dns"` // List of DNS server to lookup
DNSOptions []string `json:"DnsOptions"` // List of DNSOption to look for
DNSSearch []string `json:"DnsSearch"` // List of DNSSearch to look for
ExtraHosts []string // List of extra hosts
GroupAdd []string // GroupAdd specifies additional groups to join
IpcMode string `json:"IpcMode"` // IPC namespace to use for the container
// Cgroup CgroupSpec // Cgroup to use for the container
OomScoreAdj int // specifies the tune container’s OOM preferences (-1000 to 1000, rootless: 100 to 1000)
PidMode string // PID namespace to use for the container
// Privileged bool // Is the container in privileged mode
// PublishAllPorts bool // Should docker publish all exposed port for the container
ReadonlyRootfs bool // Is the container root filesystem in read-only
// SecurityOpt []string // List of string values to customize labels for MLS systems, such as SELinux.
Tmpfs map[string]string `json:"Tmpfs,omitempty"` // List of tmpfs (mounts) used for the container
UTSMode string // UTS namespace to use for the container
// UsernsMode UsernsMode // The user namespace to use for the container
ShmSize int64 // Size of /dev/shm in bytes. The size must be greater than 0.
Sysctls map[string]string // List of Namespaced sysctls used for the container
Runtime string // Runtime to use with this container
CPUSetMems string `json:"CpusetMems"` // CpusetMems 0-2, 0,1
CPUSetCPUs string `json:"CpusetCpus"` // CpusetCpus 0-2, 0,1
CPUQuota int64 `json:"CpuQuota"` // CPU CFS (Completely Fair Scheduler) quota
CPUPeriod uint64 `json:"CpuPeriod"` // Limits the CPU CFS (Completely Fair Scheduler) period
CPURealtimePeriod uint64 `json:"CpuRealtimePeriod"` // Limits the CPU real-time period in microseconds
CPURealtimeRuntime int64 `json:"CpuRealtimeRuntime"` // Limits the CPU real-time runtime in microseconds
Memory int64 // Memory limit (in bytes)
MemorySwap int64 // Total memory usage (memory + swap); set `-1` to enable unlimited swap
OomKillDisable bool // specifies whether to disable OOM Killer
Devices []DeviceMapping // List of devices to map inside the container
LinuxBlkioSettings
}
From https://github.com/moby/moby/blob/8dbd90ec00daa26dc45d7da2431c965dec99e8b4/api/types/container/host_config.go#L391 HostConfig the non-portable Config structure of a container.
type HostConfigLabel ¶ added in v2.0.4
type HostConfigLabel struct {
BlkioWeight uint16
CidFile string
Devices []DeviceMapping
}
type IPAM ¶
type IPAM struct {
// Driver is omitted
Config []IPAMConfig `json:"Config,omitempty"`
}
type IPAMConfig ¶
type Image ¶
type Image struct {
ID string `json:"Id"`
RepoTags []string
RepoDigests []string
Parent string
Comment string
Created string
DockerVersion string
Author string
Config *Config
Architecture string
Variant string `json:",omitempty"`
Os string
Size int64 // Size is the unpacked size of the image
VirtualSize int64 `json:"VirtualSize,omitempty"` // Deprecated
RootFS RootFS
Metadata ImageMetadata
}
From https://github.com/moby/moby/blob/v26.1.2/api/types/types.go#L34-L140
type ImageMetadata ¶
type Info ¶
type Info struct {
ID string
Driver string
Plugins PluginsInfo
MemoryLimit bool
SwapLimit bool
// KernelMemory is omitted because it is deprecated in the Moby
CPUCfsPeriod bool `json:"CpuCfsPeriod"`
CPUCfsQuota bool `json:"CpuCfsQuota"`
CPUSet bool
CPURealtime bool
PidsLimit bool
IPv4Forwarding bool
BridgeNfIptables bool
BridgeNfIP6tables bool `json:"BridgeNfIp6tables"`
// Nfd is omitted because it does not make sense for nerdctl
OomKillDisable bool
// NGoroutines is omitted because it does not make sense for nerdctl
SystemTime string
LoggingDriver string
CgroupDriver string
CgroupVersion string `json:",omitempty"`
// NEventsListener is omitted because it does not make sense for nerdctl
KernelVersion string
OperatingSystem string
OSType string
Architecture string // e.g., "x86_64", not "amd64" (Corresponds to Docker)
NCPU int
MemTotal int64
Name string
ServerVersion string
SecurityOptions []string
Warnings []string
}
Info mimics a `docker info` object. From https://github.com/moby/moby/blob/v20.10.8/api/types/types.go#L146-L216
type LinuxBlkioSettings ¶ added in v2.0.4
type LinuxBlkioSettings struct {
BlkioWeight uint16 // Block IO weight (relative weight vs. other containers)
BlkioWeightDevice []*specs.LinuxWeightDevice
BlkioDeviceReadBps []*specs.LinuxThrottleDevice
BlkioDeviceWriteBps []*specs.LinuxThrottleDevice
BlkioDeviceReadIOps []*specs.LinuxThrottleDevice
BlkioDeviceWriteIOps []*specs.LinuxThrottleDevice
}
type MemorySetting ¶ added in v2.0.4
type MountPoint ¶
type MountPoint struct {
Type string `json:",omitempty"`
Name string `json:",omitempty"`
Source string
Destination string
Driver string `json:",omitempty"`
Mode string
RW bool
Propagation string
}
From https://github.com/moby/moby/blob/v20.10.1/api/types/types.go#L416-L427 MountPoint represents a mount point configuration inside the container. This is used for reporting the mountpoints in use by a container.
type Network ¶
type Network struct {
Name string `json:"Name"`
ID string `json:"Id,omitempty"` // optional in nerdctl
IPAM IPAM `json:"IPAM,omitempty"`
Labels map[string]string `json:"Labels"`
Containers map[string]EndpointResource `json:"Containers"` // Containers contains endpoints belonging to the network
}
Network mimics a `docker network inspect` object. From https://github.com/moby/moby/blob/v20.10.7/api/types/types.go#L430-L448
type NetworkEndpointSettings ¶
type NetworkEndpointSettings struct {
// Configurations
// TODO IPAMConfig *EndpointIPAMConfig
// TODO Links []string
// TODO Aliases []string
// Operational data
// TODO NetworkID string
// TODO EndpointID string
// TODO Gateway string
IPAddress string
IPPrefixLen int
// TODO IPv6Gateway string
GlobalIPv6Address string
GlobalIPv6PrefixLen int
MacAddress string
}
NetworkEndpointSettings is from https://github.com/moby/moby/blob/v20.10.1/api/types/network/network.go#L49-L65
type NetworkSettings ¶
type NetworkSettings struct {
Ports *nat.PortMap
DefaultNetworkSettings
Networks map[string]*NetworkEndpointSettings
}
type PluginsInfo ¶
type ServerVersion ¶
type ServerVersion struct {
Components []ComponentVersion
}
ServerVersion is from https://github.com/moby/moby/blob/v20.10.8/api/types/types.go#L119-L137
type VersionInfo ¶
type VersionInfo struct {
Client ClientVersion
Server *ServerVersion
}
VersionInfo mimics a `docker version` object. From https://github.com/docker/cli/blob/v20.10.8/cli/command/system/version.go#L68-L72