Container configuration that depends on the host we are running on HostConfig

interface HostConfig {
    AutoRemove?: boolean;
    Binds?: string[];
    BlkioDeviceReadBps?: ThrottleDevice[];
    BlkioDeviceReadIOps?: ThrottleDevice[];
    BlkioDeviceWriteBps?: ThrottleDevice[];
    BlkioDeviceWriteIOps?: ThrottleDevice[];
    BlkioWeight?: number;
    BlkioWeightDevice?: ResourcesBlkioWeightDeviceInner[];
    CapAdd?: string[];
    CapDrop?: string[];
    Cgroup?: string;
    CgroupParent?: string;
    CgroupnsMode?: HostConfigCgroupnsModeEnum;
    ConsoleSize?: number[];
    ContainerIDFile?: string;
    CpuCount?: number;
    CpuPercent?: number;
    CpuPeriod?: number;
    CpuQuota?: number;
    CpuRealtimePeriod?: number;
    CpuRealtimeRuntime?: number;
    CpuShares?: number;
    CpusetCpus?: string;
    CpusetMems?: string;
    DeviceCgroupRules?: string[];
    DeviceRequests?: DeviceRequest[];
    Devices?: DeviceMapping[];
    Dns?: string[];
    DnsOptions?: string[];
    DnsSearch?: string[];
    ExtraHosts?: string[];
    GroupAdd?: string[];
    IOMaximumBandwidth?: number;
    IOMaximumIOps?: number;
    Init?: null | boolean;
    IpcMode?: string;
    Isolation?: HostConfigIsolationEnum;
    KernelMemory?: number;
    KernelMemoryTCP?: number;
    Links?: string[];
    LogConfig?: HostConfigAllOfLogConfig;
    MaskedPaths?: string[];
    Memory?: number;
    MemoryReservation?: number;
    MemorySwap?: number;
    MemorySwappiness?: number;
    Mounts?: Mount[];
    NanoCpus?: number;
    NetworkMode?: string;
    OomKillDisable?: boolean;
    OomScoreAdj?: number;
    PidMode?: string;
    PidsLimit?: null | number;
    PortBindings?: {
        [key: string]: PortBinding[] | null;
    };
    Privileged?: boolean;
    PublishAllPorts?: boolean;
    ReadonlyPaths?: string[];
    ReadonlyRootfs?: boolean;
    RestartPolicy?: RestartPolicy;
    Runtime?: string;
    SecurityOpt?: string[];
    ShmSize?: number;
    StorageOpt?: {
        [key: string]: string;
    };
    Sysctls?: {
        [key: string]: string;
    };
    Tmpfs?: {
        [key: string]: string;
    };
    UTSMode?: string;
    Ulimits?: ResourcesUlimitsInner[];
    UsernsMode?: string;
    VolumeDriver?: string;
    VolumesFrom?: string[];
}

Properties

AutoRemove?: boolean

Automatically remove the container when the container's process exits. This has no effect if RestartPolicy is set.

Binds?: string[]

A list of volume bindings for this container. Each volume binding is a string in one of these forms: - host-src:container-dest[:options] to bind-mount a host path into the container. Both host-src, and container-dest must be an absolute path. - volume-name:container-dest[:options] to bind-mount a volume managed by a volume driver into the container. container-dest must be an absolute path. options is an optional, comma-delimited list of: - nocopy disables automatic copying of data from the container path to the volume. The nocopy flag only applies to named volumes. - [ro|rw] mounts a volume read-only or read-write, respectively. If omitted or set to rw, volumes are mounted read-write. - [z|Z] applies SELinux labels to allow or deny multiple containers to read and write to the same volume. - z: a shared content label is applied to the content. This label indicates that multiple containers can share the volume content, for both reading and writing. - Z: a private unshared label is applied to the content. This label indicates that only the current container can use a private volume. Labeling systems such as SELinux require proper labels to be placed on volume content that is mounted into a container. Without a label, the security system can prevent a container's processes from using the content. By default, the labels set by the host operating system are not modified. - [[r]shared|[r]slave|[r]private] specifies mount propagation behavior. This only applies to bind-mounted volumes, not internal volumes or named volumes. Mount propagation requires the source mount point (the location where the source directory is mounted in the host operating system) to have the correct propagation properties. For shared volumes, the source mount point must be set to shared. For slave volumes, the mount must be set to either shared or slave.

BlkioDeviceReadBps?: ThrottleDevice[]

Limit read rate (bytes per second) from a device, in the form: [{\"Path\": \"device_path\", \"Rate\": rate}]

BlkioDeviceReadIOps?: ThrottleDevice[]

Limit read rate (IO per second) from a device, in the form: [{\"Path\": \"device_path\", \"Rate\": rate}]

BlkioDeviceWriteBps?: ThrottleDevice[]

Limit write rate (bytes per second) to a device, in the form: [{\"Path\": \"device_path\", \"Rate\": rate}]

BlkioDeviceWriteIOps?: ThrottleDevice[]

Limit write rate (IO per second) to a device, in the form: [{\"Path\": \"device_path\", \"Rate\": rate}]

BlkioWeight?: number

Block IO weight (relative weight).

BlkioWeightDevice?: ResourcesBlkioWeightDeviceInner[]

Block IO weight (relative device weight) in the form: [{\"Path\": \"device_path\", \"Weight\": weight}]

CapAdd?: string[]

A list of kernel capabilities to add to the container. Conflicts with option 'Capabilities'.

CapDrop?: string[]

A list of kernel capabilities to drop from the container. Conflicts with option 'Capabilities'.

Cgroup?: string

Cgroup to use for the container.

CgroupParent?: string

Path to cgroups under which the container's cgroup is created. If the path is not absolute, the path is considered to be relative to the cgroups path of the init process. Cgroups are created if they do not already exist.

cgroup namespace mode for the container. Possible values are: - \"private\": the container runs in its own private cgroup namespace - \"host\": use the host system's cgroup namespace If not specified, the daemon default is used, which can either be \"private\" or \"host\", depending on daemon version, kernel support and configuration.

ConsoleSize?: number[]

Initial console size, as an [height, width] array. (Windows only)

ContainerIDFile?: string

Path to a file where the container ID is written

CpuCount?: number

The number of usable CPUs (Windows only). On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is CPUCount first, then CPUShares, and CPUPercent last.

CpuPercent?: number

The usable percentage of the available CPUs (Windows only). On Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is CPUCount first, then CPUShares, and CPUPercent last.

CpuPeriod?: number

The length of a CPU period in microseconds.

CpuQuota?: number

Microseconds of CPU time that the container can get in a CPU period.

CpuRealtimePeriod?: number

The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks.

CpuRealtimeRuntime?: number

The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks.

CpuShares?: number

An integer value representing this container's relative CPU weight versus other containers.

CpusetCpus?: string

CPUs in which to allow execution (e.g., 0-3, 0,1).

CpusetMems?: string

Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems.

DeviceCgroupRules?: string[]

a list of cgroup rules to apply to the container

DeviceRequests?: DeviceRequest[]

A list of requests for devices to be sent to device drivers.

Devices?: DeviceMapping[]

A list of devices to add to the container.

Dns?: string[]

A list of DNS servers for the container to use.

DnsOptions?: string[]

A list of DNS options.

DnsSearch?: string[]

A list of DNS search domains.

ExtraHosts?: string[]

A list of hostnames/IP mappings to add to the container's /etc/hosts file. Specified in the form [\"hostname:IP\"].

GroupAdd?: string[]

A list of additional groups that the container process will run as.

IOMaximumBandwidth?: number

Maximum IO in bytes per second for the container system drive (Windows only).

IOMaximumIOps?: number

Maximum IOps for the container system drive (Windows only)

Init?: null | boolean

Run an init inside the container that forwards signals and reaps processes. This field is omitted if empty, and the default (as configured on the daemon) is used.

IpcMode?: string

IPC sharing mode for the container. Possible values are: - \"none\": own private IPC namespace, with /dev/shm not mounted - \"private\": own private IPC namespace - \"shareable\": own private IPC namespace, with a possibility to share it with other containers - \"container:<name|id>\": join another (shareable) container's IPC namespace - \"host\": use the host system's IPC namespace If not specified, daemon default is used, which can either be \"private\" or \"shareable\", depending on daemon version and configuration.

Isolation technology of the container. (Windows only)

KernelMemory?: number

Kernel memory limit in bytes.


> Deprecated: This field is deprecated as the kernel 5.4 deprecated > kmem.limit_in_bytes.

KernelMemoryTCP?: number

Hard limit for kernel TCP buffer memory (in bytes).

Links?: string[]

A list of links for the container in the form container_name:alias.

MaskedPaths?: string[]

The list of paths to be masked inside the container (this overrides the default set of paths).

Memory?: number

Memory limit in bytes.

MemoryReservation?: number

Memory soft limit in bytes.

MemorySwap?: number

Total memory limit (memory + swap). Set as -1 to enable unlimited swap.

MemorySwappiness?: number

Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100.

Mounts?: Mount[]

Specification for mounts to be added to the container.

NanoCpus?: number

CPU quota in units of 10-9 CPUs.

NetworkMode?: string

Network mode to use for this container. Supported standard values are: bridge, host, none, and container:<name|id>. Any other value is taken as a custom network's name to which this container should connect to.

OomKillDisable?: boolean

Disable OOM Killer for the container.

OomScoreAdj?: number

An integer value containing the score given to the container in order to tune OOM killer preferences.

PidMode?: string

Set the PID (Process) Namespace mode for the container. It can be either: - \"container:<name|id>\": joins another container's PID namespace - \"host\": use the host's PID namespace inside the container

PidsLimit?: null | number

Tune a container's PIDs limit. Set 0 or -1 for unlimited, or null to not change.

PortBindings?: {
    [key: string]: PortBinding[] | null;
}

PortMap describes the mapping of container ports to host ports, using the container's port-number and protocol as key in the format <port>/<protocol>, for example, 80/udp. If a container's port is mapped for multiple protocols, separate entries are added to the mapping table.

Privileged?: boolean

Gives the container full access to the host.

PublishAllPorts?: boolean

Allocates an ephemeral host port for all of a container's exposed ports. Ports are de-allocated when the container stops and allocated when the container starts. The allocated port might be changed when restarting the container. The port is selected from the ephemeral port range that depends on the kernel. For example, on Linux the range is defined by /proc/sys/net/ipv4/ip_local_port_range.

ReadonlyPaths?: string[]

The list of paths to be set as read-only inside the container (this overrides the default set of paths).

ReadonlyRootfs?: boolean

Mount the container's root filesystem as read only.

RestartPolicy?: RestartPolicy
Runtime?: string

Runtime to use with this container.

SecurityOpt?: string[]

A list of string values to customize labels for MLS systems, such as SELinux.

ShmSize?: number

Size of /dev/shm in bytes. If omitted, the system uses 64MB.

StorageOpt?: {
    [key: string]: string;
}

Storage driver options for this container, in the form {\"size\": \"120G\"}.

Sysctls?: {
    [key: string]: string;
}

A list of kernel parameters (sysctls) to set in the container. For example: {\"net.ipv4.ip_forward\": \"1\"}

Tmpfs?: {
    [key: string]: string;
}

A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: { \"/run\": \"rw,noexec,nosuid,size=65536k\" }

UTSMode?: string

UTS namespace to use for the container.

A list of resource limits to set in the container. For example: {\"Name\": \"nofile\", \"Soft\": 1024, \"Hard\": 2048}

UsernsMode?: string

Sets the usernamespace mode for the container when usernamespace remapping option is enabled.

VolumeDriver?: string

Driver that this container uses to mount volumes.

VolumesFrom?: string[]

A list of volumes to inherit from another container, specified in the form <container name>[:<ro|rw>].