Containerd Advanced Configuration

Edit this page Create issue

This document describes how to configure runtime options for containerd-shim-runsc-v1. This follows the Containerd Quick Start and requires containerd 1.2 or later.

Update /etc/containerd/config.toml to point to a configuration file for containerd-shim-runsc-v1.

containerd-shim-runsc-v1 supports a few different configuration options based on the version of containerd that is used. For versions >= 1.3, it supports a configurable ConfigPath in the containerd runtime configuration.

cat <<EOF | sudo tee /etc/containerd/config.toml
disabled_plugins = ["restart"]
[plugins.linux]
  shim_debug = true
[plugins.cri.containerd.runtimes.runsc]
  runtime_type = "io.containerd.runsc.v1"
[plugins.cri.containerd.runtimes.runsc.options]
  TypeUrl = "io.containerd.runsc.v1.options"
  # containerd 1.3 only!
  ConfigPath = "/etc/containerd/runsc.toml"
EOF

When you are done restart containerd to pick up the new configuration files.

sudo systemctl restart containerd

Configure /etc/containerd/runsc.toml

Note: For containerd 1.2, the config file should named config.toml and located in the runtime root. By default, this is /run/containerd/runsc.

The set of options that can be configured can be found in options.go.

Example: Enable the KVM platform

gVisor enables the use of a number of platforms. This example shows how to configure containerd-shim-runsc-v1 to use gvisor with the KVM platform.

Find out more about platform in the Platforms Guide.

cat <<EOF | sudo tee /etc/containerd/runsc.toml
[runsc_config]
platform = "kvm"
EOF

Example: Enable gVisor debug logging

gVisor debug logging can be enabled by setting the debug and debug-log flag. The shim will replace “%ID%” with the container ID, and “%COMMAND%” with the runsc command (run, boot, etc.) in the path of the debug-log flag.

Find out more about debugging in the debugging guide.

cat <<EOF | sudo tee /etc/containerd/runsc.toml
[runsc_config]
  debug=true
  debug-log=/var/log/%ID%/gvisor.%COMMAND%.log
EOF