5c9f13
# This file is is the configuration file for all tools
5c9f13
# that use the containers/storage library. The storage.conf file
5c9f13
# overrides all other storage.conf files. Container engines using the
5c9f13
# container/storage library do not inherit fields from other storage.conf
5c9f13
# files.
5c9f13
#
5c9f13
#  Note: The storage.conf file overrides other storage.conf files based on this precedence:
5c9f13
#      /usr/containers/storage.conf
5c9f13
#      /etc/containers/storage.conf
5c9f13
#      $HOME/.config/containers/storage.conf
5c9f13
#      $XDG_CONFIG_HOME/containers/storage.conf (If XDG_CONFIG_HOME is set)
5c9f13
# See man 5 containers-storage.conf for more information
5c9f13
# The "container storage" table contains all of the server options.
5c9f13
[storage]
5c9f13
5c9f13
# Default Storage Driver, Must be set for proper operation.
5c9f13
driver = "overlay"
5c9f13
5c9f13
# Temporary storage location
5c9f13
runroot = "/run/containers/storage"
5c9f13
5c9f13
# Primary Read/Write location of container storage
5c9f13
# When changing the graphroot location on an SELINUX system, you must
5c9f13
# ensure  the labeling matches the default locations labels with the
5c9f13
# following commands:
5c9f13
# semanage fcontext -a -e /var/lib/containers/storage /NEWSTORAGEPATH
5c9f13
# restorecon -R -v /NEWSTORAGEPATH
5c9f13
graphroot = "/var/lib/containers/storage"
5c9f13
5c9f13
5c9f13
# Storage path for rootless users
5c9f13
#
5c9f13
# rootless_storage_path = "$HOME/.local/share/containers/storage"
5c9f13
5c9f13
[storage.options]
5c9f13
# Storage options to be passed to underlying storage drivers
5c9f13
5c9f13
# AdditionalImageStores is used to pass paths to additional Read/Only image stores
5c9f13
# Must be comma separated list.
5c9f13
additionalimagestores = [
5c9f13
]
5c9f13
5c9f13
# Remap-UIDs/GIDs is the mapping from UIDs/GIDs as they should appear inside of
5c9f13
# a container, to the UIDs/GIDs as they should appear outside of the container,
5c9f13
# and the length of the range of UIDs/GIDs.  Additional mapped sets can be
5c9f13
# listed and will be heeded by libraries, but there are limits to the number of
5c9f13
# mappings which the kernel will allow when you later attempt to run a
5c9f13
# container.
5c9f13
#
5c9f13
# remap-uids = 0:1668442479:65536
5c9f13
# remap-gids = 0:1668442479:65536
5c9f13
5c9f13
# Remap-User/Group is a user name which can be used to look up one or more UID/GID
5c9f13
# ranges in the /etc/subuid or /etc/subgid file.  Mappings are set up starting
5c9f13
# with an in-container ID of 0 and then a host-level ID taken from the lowest
5c9f13
# range that matches the specified name, and using the length of that range.
5c9f13
# Additional ranges are then assigned, using the ranges which specify the
5c9f13
# lowest host-level IDs first, to the lowest not-yet-mapped in-container ID,
5c9f13
# until all of the entries have been used for maps.
5c9f13
#
5c9f13
# remap-user = "containers"
5c9f13
# remap-group = "containers"
5c9f13
5c9f13
# Root-auto-userns-user is a user name which can be used to look up one or more UID/GID
5c9f13
# ranges in the /etc/subuid and /etc/subgid file.  These ranges will be partitioned
5c9f13
# to containers configured to create automatically a user namespace.  Containers
5c9f13
# configured to automatically create a user namespace can still overlap with containers
5c9f13
# having an explicit mapping set.
5c9f13
# This setting is ignored when running as rootless.
5c9f13
# root-auto-userns-user = "storage"
5c9f13
#
5c9f13
# Auto-userns-min-size is the minimum size for a user namespace created automatically.
5c9f13
# auto-userns-min-size=1024
5c9f13
#
5c9f13
# Auto-userns-max-size is the minimum size for a user namespace created automatically.
5c9f13
# auto-userns-max-size=65536
5c9f13
5c9f13
[storage.options.overlay]
5c9f13
# ignore_chown_errors can be set to allow a non privileged user running with
5c9f13
# a single UID within a user namespace to run containers. The user can pull
5c9f13
# and use any image even those with multiple uids.  Note multiple UIDs will be
5c9f13
# squashed down to the default uid in the container.  These images will have no
5c9f13
# separation between the users in the container. Only supported for the overlay
5c9f13
# and vfs drivers.
5c9f13
#ignore_chown_errors = "false"
5c9f13
5c9f13
# Inodes is used to set a maximum inodes of the container image.
5c9f13
# inodes = ""
5c9f13
5c9f13
# Path to an helper program to use for mounting the file system instead of mounting it
5c9f13
# directly.
5c9f13
#mount_program = "/usr/bin/fuse-overlayfs"
5c9f13
5c9f13
# mountopt specifies comma separated list of extra mount options
5c9f13
mountopt = "nodev,metacopy=on"
5c9f13
5c9f13
# Set to skip a PRIVATE bind mount on the storage home directory.
5c9f13
# skip_mount_home = "false"
5c9f13
5c9f13
# Size is used to set a maximum size of the container image.
5c9f13
# size = ""
5c9f13
5c9f13
# ForceMask specifies the permissions mask that is used for new files and
5c9f13
# directories.
5c9f13
#
5c9f13
# The values "shared" and "private" are accepted.
5c9f13
# Octal permission masks are also accepted.
5c9f13
#
5c9f13
#  "": No value specified.
5c9f13
#     All files/directories, get set with the permissions identified within the
5c9f13
#     image.
5c9f13
#  "private": it is equivalent to 0700.
5c9f13
#     All files/directories get set with 0700 permissions.  The owner has rwx
5c9f13
#     access to the files. No other users on the system can access the files.
5c9f13
#     This setting could be used with networked based homedirs.
5c9f13
#  "shared": it is equivalent to 0755.
5c9f13
#     The owner has rwx access to the files and everyone else can read, access
5c9f13
#     and execute them. This setting is useful for sharing containers storage
5c9f13
#     with other users.  For instance have a storage owned by root but shared
5c9f13
#     to rootless users as an additional store.
5c9f13
#     NOTE:  All files within the image are made readable and executable by any
5c9f13
#     user on the system. Even /etc/shadow within your image is now readable by
5c9f13
#     any user.
5c9f13
#
5c9f13
#   OCTAL: Users can experiment with other OCTAL Permissions.
5c9f13
#
5c9f13
#  Note: The force_mask Flag is an experimental feature, it could change in the
5c9f13
#  future.  When "force_mask" is set the original permission mask is stored in
5c9f13
#  the "user.containers.override_stat" xattr and the "mount_program" option must
5c9f13
#  be specified. Mount programs like "/usr/bin/fuse-overlayfs" present the
5c9f13
#  extended attribute permissions to processes within containers rather then the
5c9f13
#  "force_mask"  permissions.
5c9f13
#
5c9f13
# force_mask = ""
5c9f13
5c9f13
[storage.options.thinpool]
5c9f13
# Storage Options for thinpool
5c9f13
5c9f13
# autoextend_percent determines the amount by which pool needs to be
5c9f13
# grown. This is specified in terms of % of pool size. So a value of 20 means
5c9f13
# that when threshold is hit, pool will be grown by 20% of existing
5c9f13
# pool size.
5c9f13
# autoextend_percent = "20"
5c9f13
5c9f13
# autoextend_threshold determines the pool extension threshold in terms
5c9f13
# of percentage of pool size. For example, if threshold is 60, that means when
5c9f13
# pool is 60% full, threshold has been hit.
5c9f13
# autoextend_threshold = "80"
5c9f13
5c9f13
# basesize specifies the size to use when creating the base device, which
5c9f13
# limits the size of images and containers.
5c9f13
# basesize = "10G"
5c9f13
5c9f13
# blocksize specifies a custom blocksize to use for the thin pool.
5c9f13
# blocksize="64k"
5c9f13
5c9f13
# directlvm_device specifies a custom block storage device to use for the
5c9f13
# thin pool. Required if you setup devicemapper.
5c9f13
# directlvm_device = ""
5c9f13
5c9f13
# directlvm_device_force wipes device even if device already has a filesystem.
5c9f13
# directlvm_device_force = "True"
5c9f13
5c9f13
# fs specifies the filesystem type to use for the base device.
5c9f13
# fs="xfs"
5c9f13
5c9f13
# log_level sets the log level of devicemapper.
5c9f13
# 0: LogLevelSuppress 0 (Default)
5c9f13
# 2: LogLevelFatal
5c9f13
# 3: LogLevelErr
5c9f13
# 4: LogLevelWarn
5c9f13
# 5: LogLevelNotice
5c9f13
# 6: LogLevelInfo
5c9f13
# 7: LogLevelDebug
5c9f13
# log_level = "7"
5c9f13
5c9f13
# min_free_space specifies the min free space percent in a thin pool require for
5c9f13
# new device creation to succeed. Valid values are from 0% - 99%.
5c9f13
# Value 0% disables
5c9f13
# min_free_space = "10%"
5c9f13
5c9f13
# mkfsarg specifies extra mkfs arguments to be used when creating the base
5c9f13
# device.
5c9f13
# mkfsarg = ""
5c9f13
5c9f13
# metadata_size is used to set the `pvcreate --metadatasize` options when
5c9f13
# creating thin devices. Default is 128k
5c9f13
# metadata_size = ""
5c9f13
5c9f13
# Size is used to set a maximum size of the container image.
5c9f13
# size = ""
5c9f13
5c9f13
# use_deferred_removal marks devicemapper block device for deferred removal.
5c9f13
# If the thinpool is in use when the driver attempts to remove it, the driver
5c9f13
# tells the kernel to remove it as soon as possible. Note this does not free
5c9f13
# up the disk space, use deferred deletion to fully remove the thinpool.
5c9f13
# use_deferred_removal = "True"
5c9f13
5c9f13
# use_deferred_deletion marks thinpool device for deferred deletion.
5c9f13
# If the device is busy when the driver attempts to delete it, the driver
5c9f13
# will attempt to delete device every 30 seconds until successful.
5c9f13
# If the program using the driver exits, the driver will continue attempting
5c9f13
# to cleanup the next time the driver is used. Deferred deletion permanently
5c9f13
# deletes the device and all data stored in device will be lost.
5c9f13
# use_deferred_deletion = "True"
5c9f13
5c9f13
# xfs_nospace_max_retries specifies the maximum number of retries XFS should
5c9f13
# attempt to complete IO when ENOSPC (no space) error is returned by
5c9f13
# underlying storage device.
5c9f13
# xfs_nospace_max_retries = "0"