% crio(8) OCI-based implementation of Kubernetes Container Runtime Interface
% The CRI-O Maintainers
crio - OCI-based implementation of Kubernetes Container Runtime Interface
crio
[--additional-devices]=[value]
[--apparmor-profile]=[value]
[--bind-mount-prefix]=[value]
[--cgroup-manager]=[value]
[--cni-config-dir]=[value]
[--cni-plugin-dir]=[value]
[--config|-c]=[value]
[--conmon-cgroup]=[value]
[--conmon-env]=[value]
[--conmon]=[value]
[--container-attach-socket-dir]=[value]
[--container-exits-dir]=[value]
[--ctr-stop-timeout]=[value]
[--default-capabilities]=[value]
[--default-mounts-file]=[value]
[--default-mounts]=[value]
[--default-runtime]=[value]
[--default-sysctls]=[value]
[--default-transport]=[value]
[--default-ulimits]=[value]
[--enable-metrics]
[--gid-mappings]=[value]
[--global-auth-file]=[value]
[--grpc-max-recv-msg-size]=[value]
[--grpc-max-send-msg-size]=[value]
[--help|-h]
[--hooks-dir]=[value]
[--host-ip]=[value]
[--image-volumes]=[value]
[--insecure-registry]=[value]
[--listen]=[value]
[--log-dir]=[value]
[--log-filter]=[value]
[--log-format]=[value]
[--log-journald]
[--log-level|-l]=[value]
[--log-size-max]=[value]
[--log]=[value]
[--manage-network-ns-lifecycle]
[--metrics-port]=[value]
[--no-pivot]
[--pause-command]=[value]
[--pause-image-auth-file]=[value]
[--pause-image]=[value]
[--pids-limit]=[value]
[--profile-port]=[value]
[--profile]
[--read-only]
[--registries-conf]=[value]
[--registry]=[value]
[--root|-r]=[value]
[--runroot]=[value]
[--runtime]=[value]
[--runtimes]=[value]
[--seccomp-profile]=[value]
[--selinux]
[--signature-policy]=[value]
[--storage-driver|-s]=[value]
[--storage-opt]=[value]
[--stream-address]=[value]
[--stream-enable-tls]
[--stream-port]=[value]
[--stream-tls-ca]=[value]
[--stream-tls-cert]=[value]
[--stream-tls-key]=[value]
[--uid-mappings]=[value]
[--version-file]=[value]
[--version|-v]
OCI-based implementation of Kubernetes Container Runtime Interface Daemon
crio is meant to provide an integration path between OCI conformant runtimes and the kubelet. Specifically, it implements the Kubelet Container Runtime Interface (CRI) using OCI conformant runtimes. The scope of crio is tied to the scope of the CRI.
- Support multiple image formats including the existing Docker and OCI image formats.
- Support for multiple means to download images including trust & image verification.
- Container image management (managing image layers, overlay filesystems, etc).
- Container process lifecycle management.
- Monitoring and logging required to satisfy the CRI.
- Resource isolation as required by the CRI.
Usage:
crio [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]
--additional-devices="": Devices to add to the containers (default: [])
--apparmor-profile="": Name of the apparmor profile to be used as the runtime's default. The default profile name is 'crio-default-' followed by the version string of CRI-O. (default: "crio-default-1.17.0-dev")
--bind-mount-prefix="": A prefix to use for the source of the bind mounts. This option would be useful if you were running CRI-O in a container. And had /
mounted on /host
in your container. Then if you ran CRI-O with the --bind-mount-prefix=/host
option, CRI-O would add /host to any bind mounts it is handed over CRI. If Kubernetes asked to have /var/lib/foobar
bind mounted into the container, then CRI-O would bind mount /host/var/lib/foobar
. Since CRI-O itself is running in a container with /
or the host mounted on /host
, the container would end up with /var/lib/foobar
from the host mounted in the container rather then /var/lib/foobar
from the CRI-O container. (default: "")
--cgroup-manager="": cgroup manager (cgroupfs or systemd) (default: "cgroupfs")
--cni-config-dir="": CNI configuration files directory (default: "/etc/cni/net.d/")
--cni-plugin-dir="": CNI plugin binaries directory (default: "")
--config, -c="": Path to configuration file (default: /etc/crio/crio.conf)
--conmon="": Path to the conmon binary, used for monitoring the OCI runtime. Will be searched for using $PATH if empty. (default: "")
--conmon-cgroup="": cgroup to be used for conmon process (default: "system.slice")
--conmon-env="": Environment variable list for the conmon process, used for passing necessary environment variables to conmon or the runtime (default: ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"])
--container-attach-socket-dir="": Path to directory for container attach sockets (default: "/var/run/crio")
--container-exits-dir="": Path to directory in which container exit files are written to by conmon (default: "/var/run/crio/exits")
--ctr-stop-timeout="": The minimal amount of time in seconds to wait before issuing a timeout regarding the proper termination of the container (default: 0)
--default-capabilities="": Capabilities to add to the containers (default: ["CHOWN" "DAC_OVERRIDE" "FSETID" "FOWNER" "NET_RAW" "SETGID" "SETUID" "SETPCAP" "NET_BIND_SERVICE" "SYS_CHROOT" "KILL"])
--default-mounts="": Add one or more default mount paths in the form host:container (deprecated) (default: [])
--default-mounts-file="": Path to default mounts file (default: "")
--default-runtime="": Default OCI runtime from the runtimes config (default: "runc")
--default-sysctls="": Sysctls to add to the containers (default: [])
--default-transport="": A prefix to prepend to image names that cannot be pulled as-is (default: "docker://")
--default-ulimits="": Ulimits to apply to containers by default (name=soft:hard) (default: [])
--enable-metrics: Enable metrics endpoint for the server on localhost:9090
--gid-mappings="": Specify the GID mappings to use for the user namespace (default: "")
--global-auth-file="": Path to a file like /var/lib/kubelet/config.json holding credentials necessary for pulling images from secure registries (default: "")
--grpc-max-recv-msg-size="": Maximum grpc receive message size in bytes (default: 16777216)
--grpc-max-send-msg-size="": Maximum grpc receive message size (default: 16777216)
--help, -h: show help
--hooks-dir="": Set the OCI hooks directory path (may be set multiple times) (default: []) Each '*.json' file in the path configures a hook for CRI-O containers. For more details on the syntax of the JSON files and the semantics of hook injection, see 'oci-hooks(5)'. CRI-O currently support both the 1.0.0 and 0.1.0 hook schemas, although the 0.1.0 schema is deprecated.
This option may be set multiple times; paths from later options
have higher precedence ('oci-hooks(5)' discusses directory
precedence).
For the annotation conditions, CRI-O uses the Kubernetes
annotations, which are a subset of the annotations passed to the
OCI runtime. For example, 'io.kubernetes.cri-o.Volumes' is part of
the OCI runtime configuration annotations, but it is not part of
the Kubernetes annotations being matched for hooks.
For the bind-mount conditions, only mounts explicitly requested by
Kubernetes configuration are considered. Bind mounts that CRI-O
inserts by default (e.g. '/dev/shm') are not considered.
--host-ip="": Host IPs are the addresses to be used for the host network and can be specified up to two times (default: [])
--image-volumes="": Image volume handling ('mkdir', 'bind', or 'ignore') 1. mkdir: A directory is created inside the container root filesystem for the volumes. 2. bind: A directory is created inside container state directory and bind mounted into the container for the volumes. 3. ignore: All volumes are just ignored and no action is taken. (default: mkdir)
--insecure-registry="": Enable insecure registry communication, i.e., enable un-encrypted and/or untrusted communication. 1. List of insecure registries can contain an element with CIDR notation to specify a whole subnet. 2. Insecure registries accept HTTP or accept HTTPS with certificates from unknown CAs. 3. Enabling '--insecure-registry' is useful when running a local registry. However, because its use creates security vulnerabilities, it should ONLY be enabled for testing purposes. For increased security, users should add their CA to their system's list of trusted CAs instead of using '--insecure-registry'.
--listen="": Path to the CRI-O socket (default: "/var/run/crio/crio.sock")
--log="": Set the log file path where internal debug information is written
--log-dir="": Default log directory where all logs will go unless directly specified by the kubelet
--log-filter="": Filter the log messages by the provided regular expression. For example 'request.*' filters all gRPC requests.
--log-format="": Set the format used by logs: 'text' or 'json' (default: text)
--log-journald: Log to systemd journal (journald) in addition to kubernetes log file (default: false)
--log-level, -l="": Log messages above specified level: trace, debug, info, warn, error, fatal or panic (default: error)
--log-size-max="": Maximum log size in bytes for a container. If it is positive, it must be >= 8192 to match/exceed conmon read buffer (default: -1)
--manage-network-ns-lifecycle: Determines whether we pin and remove network namespace and manage its lifecycle (default: false)
--metrics-port="": Port for the metrics endpoint (default: 9090)
--no-pivot: If true, the runtime will not use pivot_root
, but instead use MS_MOVE
(default: false)
--pause-command="": Path to the pause executable in the pause image (default: "/pause")
--pause-image="": Image which contains the pause executable (default: "k8s.gcr.io/pause:3.1")
--pause-image-auth-file="": Path to a config file containing credentials for --pause-image (default: "")
--pids-limit="": Maximum number of processes allowed in a container (default: 1024)
--profile: Enable pprof remote profiler on localhost:6060
--profile-port="": Port for the pprof profiler (default: 6060)
--read-only: Setup all unprivileged containers to run as read-only. Automatically mounts tmpfs on /run
, /tmp
and /var/tmp
. (default: false)
--registries-conf="": path to the registries.conf file
--registry="": Registry to be prepended when pulling unqualified images, can be specified multiple times (default: configured in /etc/containers/registries.conf)
--root, -r="": The CRI-O root directory (default: "/var/lib/containers/storage")
--runroot="": The CRI-O state directory (default: "/var/run/containers/storage")
--runtime="": OCI runtime path
--runtimes="": OCI runtimes, format is runtime_name:runtime_path:runtime_root
--seccomp-profile="": Path to the seccomp.json profile to be used as the runtime's default. If not specified, then the internal default seccomp profile will be used. (default: "")
--selinux: Enable selinux support (default: false)
--signature-policy="": Path to signature policy JSON file. (default: "", to use the system-wide default)
--storage-driver, -s="": OCI storage driver (default: "")
--storage-opt="": OCI storage driver option (default: [])
--stream-address="": Bind address for streaming socket (default: "127.0.0.1")
--stream-enable-tls: Enable encrypted TLS transport of the stream server (default: false)
--stream-port="": Bind port for streaming socket (default: "0")
--stream-tls-ca="": Path to the x509 CA(s) file used to verify and authenticate client communication with the encrypted stream. This file can change and CRI-O will automatically pick up the changes within 5 minutes (default: "")
--stream-tls-cert="": Path to the x509 certificate file used to serve the encrypted stream. This file can change and CRI-O will automatically pick up the changes within 5 minutes (default: "")
--stream-tls-key="": Path to the key file used to serve the encrypted stream. This file can change and CRI-O will automatically pick up the changes within 5 minutes (default: "")
--uid-mappings="": Specify the UID mappings to use for the user namespace (default: "")
--version, -v: print the version
--version-file="": Location for CRI-O to lay down the version file (default: /var/lib/crio/version)
Generate bash, fish or zsh completions.
Generate the man page documentation.
Generate the markdown documentation.
Outputs a commented version of the configuration file that could be used by CRI-O. This allows you to save you current configuration setup and then load it later with --config. Global options will modify the output.
--default: Output the default configuration (without taking into account any configuration options).
wipe CRI-O's container and image storage
Shows a list of commands or help for one command
crio.conf (/etc/crio/crio.conf) cri-o configuration file for all of the available command-line options for the crio(8) program, but in a TOML format that can be more easily modified and versioned.
policy.json (/etc/containers/policy.json) Signature verification policy files are used to specify policy, e.g. trusted keys, applicable when deciding whether to accept an image, or individual signatures of that image, as valid.
registries.conf (/etc/containers/registries.conf) Registry configuration file specifies registries which are consulted when completing image names that do not include a registry or domain portion.
storage.conf (/etc/containers/storage.conf) Storage configuration file specifies all of the available container storage options for tools using shared container storage.
crio.conf(5), oci-hooks(5), policy.json(5), registries.conf(5), storage.conf(5)