Simple container management across systems

Download Now On GitHub Walkthrough

What is geard?

geard is a command-line client and agent for integrating and linking Docker containers into systemd across multiple hosts. It is the core of the next generation of OpenShift Origin and helps administrators install and manage the components of their developers' applications. geard is currently under active development in the upstream community - get involved today!

What can geard do?

  • Install a Docker image into systemd with network and environment configuration
  • Start, stop, and restart individual containers
  • Build, rebuild, and test Docker images using Docker Source-to-Images
  • Create private network links between containers for easy configuration
  • Stream logs, download container data and images, and monitor container status
  • Enable SSH to containers, distribute public keys, and create and manage Git repositories
  • Deploy applications directly from the CLI - including OpenShift itself
  • Integrate with application orchestrators to manage hundreds or thousands of hosts and many more containers.

Read about geard on GitHub

Why Docker and systemd?

Docker has radically simplified the process of downloading and running application execution environments on Linux. The technology underlying these environments - cgroups, Linux namespaces, and secure process isolation with SELinux - has existed for some time, but Docker combines them with an efficient image layering and downloading scheme that makes building and running these images a snap. To learn more about Docker, see the excellent Docker tutorial.

At the same time, the systemd process manager (slated for inclusion in all major distributions of Linux) now offers administrators powerful control over the execution of applications and services. Its ability to manage and isolate processes and to aggregate and audit their log output into journald provides an excellent platform for user applications.

Together Docker and systemd ensure that developers can deliver and reliably run their applications to any environment. geard acts as an agent on each host to install Docker containers into systemd and support other container linking and configuration changes. The command-line client can connect to these agents for simple administrative tasks across a cluster, and in the future OpenShift brokers and other orchestrators will use the agent to manage containers across a cluster.

Try it out

The geard agent requires systemd 207+ (Fedora 20, RHEL7) and a recent build of Docker. You can run the client on any platform that compiles the Go language.

On Fedora and RHEL

Available via RPM in Fedora 19, 20, Rawhide, and in EPEL for RHEL7

Fedora 19/20
yum install --enablerepo=updates-testing geard
Fedora Rawhide
yum install geard
yum install
yum install geard

With a VM

Don't have systemd? Want to keep your main work system clean? Use a Vagrant VM to get Fedora 20 in a box.


You can set up VM-based testing by installing a few utilities:

  • VirtualBox, for running the VM itself
  • Vagrant, for managing the VM and syncing the geard code
  • Go or git to download the geard source code

Using Go?

Now if you have Go installed (and you have a valid $GOPATH variable), you can use it to pull the geard source code from GitHub:

go get
cd $GOPATH/src/
vagrant up
vagrant ssh

Using git?

Clone the geard source code directly from GitHub:

git clone
cd geard
vagrant up
vagrant ssh

Now what?

Once you have your geard environment ready to go you can try out an example.


Extend geard

geard is intended to provide host level services to an orchestrator (like OpenShift) or administrator. We expect it to be extended to add additional capabilities and to plug existing system services in where possible — services such as monitoring, identity management, or secure transport. More information about extensions coming soon.

File a bug

Found a bug? Let us know! OpenShift uses a public Bugzilla instance.

Hack on the source code

Talk to us