0cb8c64
# The containers configuration file specifies all of the available configuration
aeb00e3
# command-line options/flags for container engine tools like Podman & Buildah,
0cb8c64
# but in a TOML format that can be easily modified and versioned.
0cb8c64
0cb8c64
# Please refer to containers.conf(5) for details of all configuration options.
aeb00e3
# Not all container engines implement all of the options.
0cb8c64
# All of the options have hard coded defaults and these options will override
0cb8c64
# the built in defaults. Users can then override these options via the command
0cb8c64
# line. Container engines will read containers.conf files in up to three
0cb8c64
# locations in the following order:
0cb8c64
#  1. /usr/share/containers/containers.conf
0cb8c64
#  2. /etc/containers/containers.conf
0cb8c64
#  3. $HOME/.config/containers/containers.conf (Rootless containers ONLY)
0cb8c64
#  Items specified in the latter containers.conf, if they exist, override the
0cb8c64
# previous containers.conf settings, or the default settings.
0cb8c64
0cb8c64
[containers]
0cb8c64
aeb00e3
# List of devices. Specified as
0cb8c64
# "<device-on-host>:<device-on-container>:<permissions>", for example:
0cb8c64
# "/dev/sdc:/dev/xvdc:rwm".
0cb8c64
# If it is empty or commented out, only the default devices will be used
0cb8c64
#
aeb00e3
# devices = []
0cb8c64
aeb00e3
# List of volumes. Specified as
0cb8c64
# "<directory-on-host>:<directory-in-container>:<options>", for example:
0cb8c64
# "/db:/var/lib/db:ro".
0cb8c64
# If it is empty or commented out, no volumes will be added
0cb8c64
#
aeb00e3
# volumes = []
0cb8c64
aeb00e3
# Used to change the name of the default AppArmor profile of container engine.
0cb8c64
#
0cb8c64
# apparmor_profile = "container-default"
0cb8c64
aeb00e3
# List of annotation. Specified as
aeb00e3
# "key=value"
aeb00e3
# If it is empty or commented out, no annotations will be added
aeb00e3
#
aeb00e3
# annotations = []
aeb00e3
0cb8c64
# Default way to to create a cgroup namespace for the container
0cb8c64
# Options are:
0cb8c64
# `private` Create private Cgroup Namespace for the container.
0cb8c64
# `host`    Share host Cgroup Namespace with the container.
0cb8c64
#
0cb8c64
# cgroupns = "private"
0cb8c64
0634091
# Control container cgroup configuration
0634091
# Determines  whether  the  container will create CGroups.
0634091
# Options are:
0634091
# `enabled`   Enable cgroup support within container
0634091
# `disabled`  Disable cgroup support, will inherit cgroups from parent
0634091
# `no-conmon` Container engine runs run without conmon
0634091
#
0634091
# cgroups = "enabled"
0634091
0cb8c64
# List of default capabilities for containers. If it is empty or commented out,
0cb8c64
# the default capabilities defined in the container engine will be added.
0cb8c64
#
0cb8c64
# default_capabilities = [
0cb8c64
#    "AUDIT_WRITE",
0cb8c64
#    "CHOWN",
0cb8c64
#    "DAC_OVERRIDE",
0cb8c64
#    "FOWNER",
0cb8c64
#    "FSETID",
0cb8c64
#    "KILL",
0cb8c64
#    "MKNOD",
0cb8c64
#    "NET_BIND_SERVICE",
0cb8c64
#    "NET_RAW",
0cb8c64
#    "SETGID",
0cb8c64
#    "SETPCAP",
0cb8c64
#    "SETUID",
0cb8c64
#    "SYS_CHROOT",
0cb8c64
# ]
0cb8c64
aeb00e3
# A list of sysctls to be set in containers by default,
0cb8c64
# specified as "name=value",
0cb8c64
# for example:"net.ipv4.ping_group_range = 0 1000".
0cb8c64
#
0cb8c64
# default_sysctls = [
0cb8c64
#  "net.ipv4.ping_group_range=0 1000",
0cb8c64
# ]
0cb8c64
0cb8c64
# A list of ulimits to be set in containers by default, specified as
0cb8c64
# "<ulimit name>=<soft limit>:<hard limit>", for example:
0cb8c64
# "nofile=1024:2048"
0cb8c64
# See setrlimit(2) for a list of resource names.
0cb8c64
# Any limit not specified here will be inherited from the process launching the
0cb8c64
# container engine.
0cb8c64
# Ulimits has limits for non privileged container engines.
0cb8c64
#
0cb8c64
# default_ulimits = [
12ed18f
#  "nofile"="1280:2560",
0cb8c64
# ]
0cb8c64
0cb8c64
# List of default DNS options to be added to /etc/resolv.conf inside of the container.
0cb8c64
#
0cb8c64
# dns_options = []
0cb8c64
0cb8c64
# List of default DNS search domains to be added to /etc/resolv.conf inside of the container.
0cb8c64
#
0cb8c64
# dns_searches = []
0cb8c64
0cb8c64
# Set default DNS servers.
0cb8c64
# This option can be used to override the DNS configuration passed to the
12ed18f
# container. The special value "none" can be specified to disable creation of
0cb8c64
# /etc/resolv.conf in the container.
0cb8c64
# The /etc/resolv.conf file in the image will be used without changes.
0cb8c64
#
0cb8c64
# dns_servers = []
0cb8c64
0cb8c64
# Environment variable list for the conmon process; used for passing necessary
0cb8c64
# environment variables to conmon or the runtime.
0cb8c64
#
0cb8c64
# env = [
0cb8c64
#    "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
0cb8c64
# ]
0cb8c64
0cb8c64
# Pass all host environment variables into the container.
0cb8c64
#
0cb8c64
# env_host = false
0cb8c64
0cb8c64
# Default proxy environment variables passed into the container.
0cb8c64
# The environment variables passed in include:
0cb8c64
# http_proxy, https_proxy, ftp_proxy, no_proxy, and the upper case versions of
0cb8c64
# these. This option is needed when host system uses a proxy but container
0cb8c64
# should not use proxy. Proxy environment variables specified for the container
0cb8c64
# in any other way will override the values passed from the host.
0cb8c64
#
0cb8c64
# http_proxy = true
0cb8c64
0cb8c64
# Run an init inside the container that forwards signals and reaps processes.
0cb8c64
#
0cb8c64
# init = false
0cb8c64
0cb8c64
#  Container init binary, if init=true, this is the init binary to be used for containers.
0cb8c64
#
0cb8c64
# init_path = "/usr/libexec/podman/catatonit"
0cb8c64
0cb8c64
# Default way to to create an IPC namespace (POSIX SysV IPC) for the container
0cb8c64
# Options are:
0cb8c64
# `private` Create private IPC Namespace for the container.
0cb8c64
# `host`    Share host IPC Namespace with the container.
0cb8c64
#
0cb8c64
# ipcns = "private"
0cb8c64
aeb00e3
# Flag tells container engine to whether to use container separation using
aeb00e3
# MAC(SELinux)labeling or not.
0cb8c64
# Flag is ignored on label disabled systems.
0cb8c64
#
0cb8c64
# label = true
0cb8c64
0cb8c64
# Logging driver for the container. Available options: k8s-file and journald.
0cb8c64
#
0cb8c64
# log_driver = "k8s-file"
0cb8c64
0cb8c64
# Maximum size allowed for the container log file. Negative numbers indicate
0cb8c64
# that no size limit is imposed. If positive, it must be >= 8192 to match or
0cb8c64
# exceed conmon's read buffer. The file is truncated and re-opened so the
0cb8c64
# limit is never exceeded.
0cb8c64
#
0cb8c64
# log_size_max = -1
0cb8c64
0cb8c64
# Default way to to create a Network namespace for the container
0cb8c64
# Options are:
0cb8c64
# `private` Create private Network Namespace for the container.
0cb8c64
# `host`    Share host Network Namespace with the container.
0cb8c64
# `none`    Containers do not use the network
0cb8c64
#
0cb8c64
# netns = "private"
0cb8c64
aeb00e3
# Create /etc/hosts for the container.  By default, container engine manage
0cb8c64
# /etc/hosts, automatically adding  the container's  own  IP  address.
0cb8c64
#
0cb8c64
# no_hosts = false
0cb8c64
0cb8c64
# Maximum number of processes allowed in a container.
0cb8c64
#
0cb8c64
# pids_limit = 2048
0cb8c64
0cb8c64
# Default way to to create a PID namespace for the container
0cb8c64
# Options are:
0cb8c64
# `private` Create private PID Namespace for the container.
0cb8c64
# `host`    Share host PID Namespace with the container.
0cb8c64
#
0cb8c64
# pidns = "private"
0cb8c64
0cb8c64
# Path to the seccomp.json profile which is used as the default seccomp profile
0cb8c64
# for the runtime.
0cb8c64
#
0cb8c64
# seccomp_profile = "/usr/share/containers/seccomp.json"
0cb8c64
0cb8c64
# Size of /dev/shm. Specified as <number><unit>.
0cb8c64
# Unit is optional, values:
0cb8c64
# b (bytes), k (kilobytes), m (megabytes), or g (gigabytes).
0cb8c64
# If the unit is omitted, the system uses bytes.
0cb8c64
#
0cb8c64
# shm_size = "65536k"
0cb8c64
12ed18f
# Set timezone in container. Takes IANA timezones as well as "local",
12ed18f
# which sets the timezone in the container to match the host machine.
12ed18f
#
12ed18f
# tz = ""
12ed18f
12ed18f
# Set umask inside the container
12ed18f
#
12ed18f
# umask="0022"
12ed18f
0cb8c64
# Default way to to create a UTS namespace for the container
0cb8c64
# Options are:
0cb8c64
# `private`        Create private UTS Namespace for the container.
0cb8c64
# `host`    Share host UTS Namespace with the container.
0cb8c64
#
0cb8c64
# utsns = "private"
0cb8c64
0cb8c64
# Default way to to create a User namespace for the container
0cb8c64
# Options are:
0cb8c64
# `auto`        Create unique User Namespace for the container.
0cb8c64
# `host`    Share host User Namespace with the container.
0cb8c64
#
0cb8c64
# userns = "host"
0cb8c64
0cb8c64
# Number of UIDs to allocate for the automatic container creation.
12ed18f
# UIDs are allocated from the "container" UIDs listed in
0cb8c64
# /etc/subuid & /etc/subgid
0cb8c64
#
0cb8c64
# userns_size=65536
0cb8c64
0cb8c64
# The network table contains settings pertaining to the management of
0cb8c64
# CNI plugins.
0cb8c64
0cb8c64
[network]
0cb8c64
0cb8c64
# Path to directory where CNI plugin binaries are located.
0cb8c64
#
0cb8c64
# cni_plugin_dirs = ["/usr/libexec/cni"]
0cb8c64
0cb8c64
# Path to the directory where CNI configuration files are located.
0cb8c64
#
0cb8c64
# network_config_dir = "/etc/cni/net.d/"
0cb8c64
aeb00e3
[engine]
aeb00e3
aeb00e3
# Cgroup management implementation used for the runtime.
12ed18f
# Valid options "systemd" or "cgroupfs"
aeb00e3
#
aeb00e3
# cgroup_manager = "systemd"
0cb8c64
0cb8c64
# Environment variables to pass into conmon
0cb8c64
#
0cb8c64
# conmon_env_vars = [
0cb8c64
#        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
0cb8c64
# ]
0cb8c64
0cb8c64
# Paths to look for the conmon container manager binary
0cb8c64
#
0cb8c64
# conmon_path = [
0cb8c64
#        "/usr/libexec/podman/conmon",
0cb8c64
#        "/usr/local/libexec/podman/conmon",
0cb8c64
#        "/usr/local/lib/podman/conmon",
0cb8c64
#        "/usr/bin/conmon",
0cb8c64
#        "/usr/sbin/conmon",
0cb8c64
#        "/usr/local/bin/conmon",
0cb8c64
#        "/usr/local/sbin/conmon"
0cb8c64
# ]
0cb8c64
0cb8c64
# Specify the keys sequence used to detach a container.
0cb8c64
# Format is a single character [a-Z] or a comma separated sequence of
0cb8c64
# `ctrl-<value>`, where `<value>` is one of:
0cb8c64
# `a-z`, `@`, `^`, `[`, `\`, `]`, `^` or `_`
0cb8c64
#
0cb8c64
# detach_keys = "ctrl-p,ctrl-q"
0cb8c64
aeb00e3
# Determines whether engine will reserve ports on the host when they are
0cb8c64
# forwarded to containers. When enabled, when ports are forwarded to containers,
0cb8c64
# ports are held open by as long as the container is running, ensuring that
0cb8c64
# they cannot be reused by other programs on the host. However, this can cause
0cb8c64
# significant memory usage if a container has many ports forwarded to it.
0cb8c64
# Disabling this can save memory.
0cb8c64
#
0cb8c64
# enable_port_reservation = true
0cb8c64
12ed18f
# Environment variables to be used when running the container engine (e.g., Podman, Buildah).
12ed18f
# For example "http_proxy=internal.proxy.company.com".
12ed18f
# Note these environment variables will not be used within the container.
12ed18f
# Set the env section under [containers] table, if you want to set environment variables for the container.
12ed18f
# env = []
12ed18f
0cb8c64
# Selects which logging mechanism to use for container engine events.
0cb8c64
# Valid values are `journald`, `file` and `none`.
0cb8c64
#
0cb8c64
# events_logger = "journald"
0cb8c64
12ed18f
# Path to OCI hooks directories for automatically executed hooks.
12ed18f
#
12ed18f
# hooks_dir = [
12ed18f
#     "/usr/share/containers/oci/hooks.d",
12ed18f
# ]
12ed18f
0cb8c64
# Default transport method for pulling and pushing for images
0cb8c64
#
0cb8c64
# image_default_transport = "docker://"
0cb8c64
0cb8c64
# Default command to run the infra container
0cb8c64
#
0cb8c64
# infra_command = "/pause"
0cb8c64
0cb8c64
# Infra (pause) container image name for pod infra containers.  When running a
0cb8c64
# pod, we start a `pause` process in a container to hold open the namespaces
0cb8c64
# associated with the  pod.  This container does nothing other then sleep,
0cb8c64
# reserving the pods resources for the lifetime of the pod.
0cb8c64
#
aeb00e3
# infra_image = "k8s.gcr.io/pause:3.2"
0cb8c64
aeb00e3
# Specify the locking mechanism to use; valid values are "shm" and "file".
0cb8c64
# Change the default only if you are sure of what you are doing, in general
0cb8c64
# "file" is useful only on platforms where cgo is not available for using the
0cb8c64
# faster "shm" lock type.  You may need to run "podman system renumber" after
0cb8c64
# you change the lock type.
0cb8c64
#
0cb8c64
# lock_type** = "shm"
0cb8c64
aeb00e3
# Default engine namespace
aeb00e3
# If engine is joined to a namespace, it will see only containers and pods
0cb8c64
# that were created in the same namespace, and will create new containers and
0cb8c64
# pods in that namespace.
0cb8c64
# The default namespace is "", which corresponds to no namespace. When no
0cb8c64
# namespace is set, all containers and pods are visible.
0cb8c64
#
0cb8c64
# namespace = ""
0cb8c64
12ed18f
# NetworkCmdPath is the path to the slirp4netns binary
12ed18f
#
12ed18f
# network_cmd_path=""
12ed18f
0cb8c64
# Whether to use chroot instead of pivot_root in the runtime
0cb8c64
#
0cb8c64
# no_pivot_root = false
0cb8c64
0cb8c64
# Number of locks available for containers and pods.
0cb8c64
# If this is changed, a lock renumber must be performed (e.g. with the
0cb8c64
# 'podman system renumber' command).
0cb8c64
#
0cb8c64
# num_locks = 2048
0cb8c64
aeb00e3
# Whether to pull new image before running a container
aeb00e3
# pull_policy = "missing"
aeb00e3
aeb00e3
# Directory for persistent engine files (database, etc)
0cb8c64
# By default, this will be configured relative to where the containers/storage
0cb8c64
# stores containers
0cb8c64
# Uncomment to change location from this default
0cb8c64
#
0cb8c64
# static_dir = "/var/lib/containers/storage/libpod"
0cb8c64
0cb8c64
# Directory for temporary files. Must be tmpfs (wiped after reboot)
0cb8c64
#
0cb8c64
# tmp_dir = "/var/run/libpod"
0cb8c64
0cb8c64
# Directory for libpod named volumes.
0cb8c64
# By default, this will be configured relative to where containers/storage
0cb8c64
# stores containers.
0cb8c64
# Uncomment to change location from this default.
0cb8c64
#
0cb8c64
# volume_path = "/var/lib/containers/storage/volumes"
0cb8c64
0cb8c64
# Default OCI runtime
0cb8c64
#
0cb8c64
# runtime = "runc"
0cb8c64
0cb8c64
# List of the OCI runtimes that support --format=json.  When json is supported
aeb00e3
# engine will use it for reporting nicer errors.
aeb00e3
#
aeb00e3
# runtime_supports_json = ["crun", "runc", "kata"]
aeb00e3
aeb00e3
# List of the OCI runtimes that supports running containers without cgroups.
0cb8c64
#
aeb00e3
# runtime_supports_nocgroups = ["crun"]
0cb8c64
aeb00e3
# List of the OCI runtimes that supports running containers with KVM Separation.
aeb00e3
#
aeb00e3
# runtime_supports_kvm = ["kata"]
aeb00e3
12ed18f
# Number of seconds to wait for container to exit before sending kill signal.
12ed18f
# stop_timeout = 10
12ed18f
12ed18f
# Index to the active service
12ed18f
# active_service = production
12ed18f
12ed18f
# map of service destinations
12ed18f
# [service_destinations]
12ed18f
#   [service_destinations.production]
12ed18f
#     URI to access the Podman service
12ed18f
#     Examples:
12ed18f
#       rootless "unix://run/user/$UID/podman/podman.sock" (Default)
12ed18f
#       rootfull "unix://run/podman/podman.sock (Default)
12ed18f
#       remote rootless ssh://engineering.lab.company.com/run/user/1000/podman/podman.sock
12ed18f
#       remote rootfull ssh://root@10.10.1.136:22/run/podman/podman.sock
12ed18f
#     uri="ssh://user@production.example.com/run/user/1001/podman/podman.sock"
12ed18f
#     Path to file containing ssh identity key
12ed18f
#     identity = "~/.ssh/id_rsa"
12ed18f
aeb00e3
# Paths to look for a valid OCI runtime (runc, runv, kata, etc)
aeb00e3
[engine.runtimes]
0cb8c64
# runc = [
0cb8c64
#        "/usr/bin/runc",
0cb8c64
#        "/usr/sbin/runc",
0cb8c64
#        "/usr/local/bin/runc",
0cb8c64
#        "/usr/local/sbin/runc",
0cb8c64
#        "/sbin/runc",
0cb8c64
#        "/bin/runc",
0cb8c64
#        "/usr/lib/cri-o-runc/sbin/runc",
0cb8c64
# ]
0cb8c64
0cb8c64
# crun = [
0cb8c64
#            "/usr/bin/crun",
0cb8c64
#            "/usr/sbin/crun",
0cb8c64
#            "/usr/local/bin/crun",
0cb8c64
#            "/usr/local/sbin/crun",
0cb8c64
#            "/sbin/crun",
0cb8c64
#            "/bin/crun",
0cb8c64
#            "/run/current-system/sw/bin/crun",
0cb8c64
# ]
0cb8c64
aeb00e3
# kata = [
aeb00e3
#            "/usr/bin/kata-runtime",
aeb00e3
#            "/usr/sbin/kata-runtime",
aeb00e3
#            "/usr/local/bin/kata-runtime",
aeb00e3
#            "/usr/local/sbin/kata-runtime",
aeb00e3
#            "/sbin/kata-runtime",
aeb00e3
#            "/bin/kata-runtime",
aeb00e3
#            "/usr/bin/kata-qemu",
aeb00e3
#            "/usr/bin/kata-fc",
aeb00e3
# ]
aeb00e3
aeb00e3
# The [engine.runtimes] table MUST be the last entry in this file.
0cb8c64
# (Unless another table is added)
0cb8c64
# TOML does not provide a way to end a table other than a further table being
0cb8c64
# defined, so every key hereafter will be part of [runtimes] and not the main
0cb8c64
# config.