Need help with check_docker?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

126 Stars 28 Forks BSD 2-Clause "Simplified" License 43 Commits 10 Opened issues


A Go Nagios check for Docker

Services available


Need anything else?

Contributors list

Archived header


A Nagios check to check some basic statistics reported by the Docker daemon. Additionally validates the absence of Ghost containers and may optionally be made to require the presence of a container running from a particular image tag.

is written in Go and is multi-threaded to keep the drag time low on your Nagios server. It makes two API requests to the Docker daemon, one to
and one to
and processes the results, all simultaneously.

It is built using the the go_nagios framework.


If you would rather not build the binaries yourself, you can install compiled, statically-linked binaries for Linux or MacOSX. Simply download the tarball, extract it and use the binary of your choice.


go get
go build


Usage of ./check_docker:
  -base-url="http://docker-server:2375": The Base URL for the Docker server
  -container-name="": The name of a container that must be running on the Docker server
  -warn-data-space=100: Warning threshold for Data Space
  -crit-data-space=100: Critical threshold for Data Space
  -warn-meta-space=100: Warning threshold for Metadata Space
  -crit-meta-space=100: Critical threshold for Metadata Space
  -image-id="": An image ID that must be running on the Docker server
  -tls-cert="": Path to TLS cert file
  -tls-key="": Path to TLS key file
  -tls-ca="": Path to TLS CA file

: Here you specify the base url of the docker server.

: Allows you to specify the name of a container that should be running on the server.

: You can specify an image tag that needs to be running on the server for certain cases where you have pegged a container to a server (e.g. each server has a Nagios monitoring container running to report on server health). Will not require any particular image if left off.

: the thresholds at which the named Nagios status codes should be emitted. These are percentages, so
would send a CRITICAL response when the threshold of 95% is crossed. Defaults are 100%.


Contributions are more than welcome. Bug reports with specific reproduction steps are great. If you have a code contribution you'd like to make, open a pull request with suggested code.

Pull requests should:

  • Clearly state their intent in the title
  • Have a description that explains the need for the changes
  • Include tests!
  • Not break the public API

Testing for Contributors

go test
can be run on 2 different platforms:
  1. In Darwin(aufs), assuming you already setup Boot2Docker: ``` docker run -t -d --name namedcontainer busybox:latest export DOCKERIMAGE=busybox:latest export DOCKERCONTAINERNAME=named_container

    cd $GOPATH/src/ go get ./... && go test ```

  2. In Linux(devicemapper), you are running the tests inside vagrant: ``` cd $GOPATH/src/ vagrant up --provider virtualbox vagrant ssh

    Inside Vagrant

    sudo docker run -t -d --name namedcontainer busybox:latest export DOCKERIMAGE=busybox:latest export DOCKERCONTAINERNAME=named_container

    export GOPATH=/go cd $GOPATH/src/ go get ./... && go test ```

Copyright (c) 2014 New Relic, Inc. All rights reserved.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.