NAME
API::Docker::Type::HostConfig - Container configuration that depends on the host we are running on
VERSION
version 0.004
DESCRIPTION
Generated from the HostConfig definition of spec/v1.51.yaml, which is allOf [ $ref Resources, { 39 properties } ]. The reference becomes a superclass, so a HostConfig carries the 31 fields of API::Docker::Type::Resources as well as the 39 declared here -- 70 in all. See "allOf becomes inheritance" in API::Docker::Type.
binds
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. Bothhost-src, andcontainer-destmust be an absolute path.volume-name:container-dest[:options]to bind-mount a volume managed by a volume driver into the container.container-destmust be an absolute path.
options is an optional, comma-delimited list of:
nocopydisables automatic copying of data from the container path to the volume. Thenocopyflag only applies to named volumes.[ro|rw]mounts a volume read-only or read-write, respectively. If omitted or set torw, 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 toshared. For slave volumes, the mount must be set to eithersharedorslave.
container_id_file
Path to a file where the container ID is written. Serialised as ContainerIDFile -- spelled out, because deriving it from the Perl name would produce ContainerIdFile.
log_config
The logging configuration for this container. See API::Docker::Type::HostConfig::LogConfig.
network_mode
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.
port_bindings
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. In the swagger this is a $ref to PortMap, a definition that is nothing but additionalProperties, so it becomes a hash here rather than a class of its own, and the daemon does answer with null for a port that is exposed but not published. See API::Docker::Type::PortBinding. The keys are the caller's data and are never translated.
restart_policy
The behavior to apply when the container exits. See API::Docker::Type::RestartPolicy.
auto_remove
Automatically remove the container when the container's process exits. This has no effect if RestartPolicy is set.
volume_driver
Driver that this container uses to mount volumes.
volumes_from
A list of volumes to inherit from another container, specified in the form <container name>[:<ro|rw>].
mounts
Specification for mounts to be added to the container. See API::Docker::Type::Mount.
console_size
Initial console size, as an [height, width] array.
annotations
Arbitrary non-identifying metadata attached to container and provided to the runtime when the container is started. The keys are the caller's data and are never translated.
cap_add
A list of kernel capabilities to add to the container. Conflicts with option 'Capabilities'.
cap_drop
A list of kernel capabilities to drop from the container. Conflicts with option 'Capabilities'.
cgroupns_mode
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.
dns
A list of DNS servers for the container to use.
dns_options
A list of DNS options.
dns_search
A list of DNS search domains.
extra_hosts
A list of hostnames/IP mappings to add to the container's /etc/hosts file. Specified in the form ["hostname:IP"].
group_add
A list of additional groups that the container process will run as.
ipc_mode
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.
cgroup
Cgroup to use for the container.
links
A list of links for the container in the form container_name:alias.
oom_score_adj
An integer value containing the score given to the container in order to tune OOM killer preferences.
pid_mode
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
privileged
Gives the container full access to the host.
publish_all_ports
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.
readonly_rootfs
Mount the container's root filesystem as read only.
security_opt
A list of string values to customize labels for MLS systems, such as SELinux.
storage_opt
Storage driver options for this container, in the form {"size": "120G"}. The keys are the caller's data and are never translated.
tmpfs
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" }
The keys are the caller's data and are never translated.
uts_mode
UTS namespace to use for the container. Serialised as UTSMode -- spelled out, because deriving it from the Perl name would produce UtsMode.
userns_mode
Sets the usernamespace mode for the container when usernamespace remapping option is enabled.
shm_size
Size of /dev/shm in bytes. If omitted, the system uses 64MB.
sysctls
A list of kernel parameters (sysctls) to set in the container.
This field is omitted if not set. The swagger's example is {"net.ipv4.ip_forward": "1"}. The keys are the caller's data and are never translated.
runtime
Runtime to use with this container.
isolation
Isolation technology of the container. (Windows only). The swagger enumerates default, process, hyperv and the empty string.
masked_paths
The list of paths to be masked inside the container (this overrides the default set of paths).
readonly_paths
The list of paths to be set as read-only inside the container (this overrides the default set of paths).
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-api-docker/issues.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <getty@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.