Skip to content

direvius/porto

 
 

Repository files navigation

Porto

Build Status

OVERVIEW

Porto is a Linux container management system, developed by Yandex. The main goal of Porto is to create a convenient, reliable interface over several Linux kernel mechanism such as cgroups, namespaces, mounts, networking etc. Porto is intended to be used as a base for building large infrastructure projects. Porto provides a protobuf-based interface via an Unix socket. C++, Python and Go APIs are included. A command line tool (portoctl) for managing Porto-containers is also provided.

Porto has the following key-features:

  • Container hierarchies: you can manage nested groups of containers, limit their aggregate resource usage and share resources between containers in a flexible manner.
  • Container namespaces: you can run any container-management software inside a container without any modifications.
  • Flexible isolation: you can control which resources are isolated. You can easily integrate Porto into your existing infrastructure.

BUILDING

$ cmake .
$ make
$ make install DESTDIR=/usr/local

RUNNING

Porto requires only Linux kernel 3.4+, although some functionality requires newer kernels (for instance, 3.18+ for OverlayFs) or even offstream patches.

$ sudo portod &
$ portoctl run my_container command='echo "Hello, world!"'
$ portoctl wait my_container
$ portoctl get my_container stdout
$ portoctl get my_container exit_status
$ portoctl destroy my_container

or

$ portoctl exec my_container command='echo "Hello, world!"'

DOCUMENTATION

About

Yet another Linux container management system

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 91.9%
  • Python 2.8%
  • Go 2.0%
  • Shell 1.4%
  • Protocol Buffer 1.0%
  • CMake 0.5%
  • Ruby 0.4%