Skip to content

Releases: opencontainers/runc

Release 0.0.8 for runc and specification 0.3.0

10 Feb 22:31
Compare
Choose a tag to compare

runc 0.0.8

This new release of runc supports the OCI runtime specification version 0.3.0. It includes changes such as the unified configuration file, separation of device creation and access, and many other usability updates.

New features

Detach

The detach flag allows runc to exit after it spawns the container and reparents the process to system init. You no longer have a long running runc process as the parent of the container.

runc start -d test

Pid file

The pid-file flag allows runc to write the pid of the process run inside the container to a file so that existing init systems can wait on it and allows runc to exit.

runc start -d --pid-file test.pid test

Delete command

The delete command allows runc to delete the container's state after it has exited for use with the detach flag.

runc delete test

List command

The list command will list all containers running on a system that were spawned by runc.

> runc list
ID          PID         STATUS      CREATED
test        15278       running     2016-02-10T22:21:09.415768192Z

Exec command updates

The exec command now allows you to use a json file for the process configuration or pass the arguments and settings via flags and args.

> runc exec --tty --env TEST=1 -- test ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   4476   900 ?        Ss+  22:23   0:00 sh
root        13  0.0  0.0  15600  2116 ?        Rs+  22:23   0:00 ps aux

Container ids

Container ids are required for every command in runc. You pass the container id as argument 1 to the commands to specify which container you want to interact with. This was always the case before in runc but hidden behind a --id flag.

> runc start test
> runc events test
> runc kill test

Update to spec 0.3.0

Be sure to use the runc spec command to generate a new base template for your containers based on the specification and the unified configuration file.

NAME:
   runc - Open Container Initiative runtime

runc is a command line client for running applications packaged according to
the Open Container Format (OCF) and is a compliant implementation of the
Open Container Initiative specification.

runc integrates well with existing process supervisors to provide a production
container runtime environment for applications. It can be used with your
existing process monitoring tools and the container will be spawned as a
direct child of the process supervisor.

After creating config files for your root filesystem with runc, you can execute 
a container in your shell by running:

    # cd /mycontainer
    # runc start [ -b bundle ] <container-id>

If not specified, the default value for the 'bundle' is the current directory.
'Bundle' is the directory where 'config.json' must be located.

USAGE:
   runc [global options] command [command options] [arguments...]

VERSION:
   0.0.8
spec version 0.3.0

COMMANDS:
   checkpoint   checkpoint a running container
   delete       delete any resources held by the container often used with detached containers
   events       display container events such as OOM notifications, cpu, memory, IO and network stats
   exec         execute new process inside the container
   kill         kill sends the specified signal (default: SIGTERM) to the container's init process
   list         lists containers started by runc with the given root
   pause        pause suspends all processes inside the container
   restore      restore a container from a previous checkpoint
   resume       resumes all processes that have been previously paused
   spec         create a new specification file
   start        create and run a container
   help, h      Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --debug                                      enable debug output for logging
   --log                                        set the log file path where internal debug information is written
   --log-format "text"                          set the format used by logs ('text' (default), or 'json')
   --root "/run/opencontainer/containers"       root directory for storage of container state (this should be located in tmpfs)
   --criu "criu"                                path to the criu binary used for checkpoint and restore
   --help, -h                                   show help
   --version, -v                                print the version

MD5 hases for the downloadable runc binaries in this release are:

  • runc-amd64: 966cf271c2923b64d2d7ad0be9ffdc6e

Release v0.0.7

26 Jan 22:50
Compare
Choose a tag to compare
Release v0.0.7 Pre-release
Pre-release

This release includes the following changes:

  • Do not use stream encoders
  • Update github.com/opencontainers/specs to a7b5092
  • cgroup: systemd: properly expand systemd slice names
  • Remove the nullState
  • Revert "update date in README"
  • Add build status badge
  • Allow switch to anything from nullState
  • Fix various state bugs for pause and destroy
  • cgroups: set memory cgroups in Set
  • Only set cwd when not empty
  • Fix comment of swap limit
  • Add support for just joining in apply using cgroup paths
  • Remove some hard coded strings
  • Handle seccomp proc parsing errors
  • Embed Resources for backward compatibility
  • add seccomp.IsEnabled() function
  • cleanup old hack dir
  • Check that cwd is absolute
  • update go version to 1.5.3 in dockerfile and cleanup
  • Make cwd required
  • Update README of libcontainer
  • Only validate post-hyphen field length on cgroup mounts
  • libcontainer: set cgroup config late
  • libcontainer: cgroups: loudly fail with Set
  • libcontainer: cgroups: don't Set in Apply
  • libcontainer: cgroups: add pids controller support
  • cgroups: fs: fix cgroup.Parent path sanitisation
  • Do not create devices when in user namespace
  • Revert to non-recursive GetPids, add recursive GetAllPids
  • selinux: add SelinuxSetEnforceMode implementation
  • update date in README
  • Add --console to specify path to use from runc
  • Do not allow access to /dev/tty{0,1}
  • Add white list for bind mount check
  • Fix typo word in SPEC.md
  • libcontainer: Add support for memcg pressure notifications
  • Cleanup Godeps
  • Revert "cgroups: add pids controller support"
  • libcontainer: set cgroup config late
  • libcontainer: cgroups: loudly fail with Set
  • libcontainer: cgroups: don't Set in Apply
  • libcontainer: cgroups: add pids controller support
  • Caclulate NLA_HDRLEN as gccgo workaround
  • Add state pattern for container state transition
  • Move the cgroups setting into a Resources struct
  • Move linux only Process.InitializeIO behind the linux build flag.
  • Replace docker units package with new docker/go-units.
  • Move STDIO initialization to libcontainer.Process
  • Fixing TestSetFilecon in selinux test step
  • Adding selinux label
  • make localtest failure with selinux enabled
  • Add spec version to runC version cli

Release v0.0.6

11 Dec 19:07
Compare
Choose a tag to compare

This release includes the following changes:

  • fix minor typo
  • Remove the timeframe for v1 spec
  • Export console New func
  • setns: replace env with netlink for bootstrap data
  • systemd: support cgroup parent with specified slice
  • libcontainer: network_linux.go: fix go vet
  • Fixing xattr test step issue
  • libcontainer: configs: create cgroup_unsupported.go in order to build on darwin as well
  • Fixing minor typo in usage
  • setns: add bootstrap data
  • Adding error conditions when apparmor disabled
  • README.md: clarify OCI JSON files