Go to file
2016-06-28 11:16:24 -07:00
debian Fix 'Depends:' for lucid and newer 2016-06-28 11:16:24 -07:00
docker_custodian bump version, remove argparse dep for py2.6 2016-04-20 10:19:00 -07:00
tests dict() to {} 2016-04-20 10:13:03 -07:00
.dockerignore Add a container to run docker-custodian and install instructions to the README. 2015-08-08 18:11:22 -04:00
.gitignore Adding project files 2015-07-08 12:33:52 -07:00
.pre-commit-config.yaml Adding project files 2015-07-08 12:33:52 -07:00
.travis.yml remove py26, better pre-commit support, cleaner tox 2016-04-20 10:01:02 -07:00
Dockerfile Update the readme to reflect that the official docker image. Fixes #16 2015-09-29 10:57:23 -07:00
LICENSE Adding project files 2015-07-08 12:33:52 -07:00
Makefile Add a container to run docker-custodian and install instructions to the README. 2015-08-08 18:11:22 -04:00
README.rst added #egg=docker_custodian to pip example. Closes #22 2016-04-20 14:11:35 -07:00
requirements.txt bump docker-py version 2016-04-04 16:58:34 -07:00
setup.py bump version, remove argparse dep for py2.6 2016-04-20 10:19:00 -07:00
tox.ini remove py26, better pre-commit support, cleaner tox 2016-04-20 10:01:02 -07:00

Docker Custodian
================

.. image:: https://travis-ci.org/Yelp/docker-custodian.svg
    :target: https://travis-ci.org/Yelp/docker-custodian

Keep docker hosts tidy.


.. contents::
    :backlinks: none

Install
-------

There are three installation options

Container
~~~~~~~~~

.. code::

    docker pull yelp/docker-custodian
    docker run -ti \
        -v /var/run/docker.sock:/var/run/docker.sock \
        yelp/docker-custodian dcgc --help

Debian/Ubuntu package
~~~~~~~~~~~~~~~~~~~~~

First build the package (requires `dh-virtualenv`)

.. code:: sh

    dpkg-buildpackage -us -uc

Then install it

.. code:: sh

    dpkg -i ../docker-custodian_*.deb


Source
~~~~~~

.. code:: sh

    pip install git+https://github.com/Yelp/docker-custodian.git#egg=docker_custodian


dcgc
----

Remove old docker containers and docker images.

``dcgc`` will remove stopped containers and unused images that are older than
"max age".  Running containers, and images which are used by a container are
never removed.

Maximum age can be specificied with any format supported by
`pytimeparse <https://github.com/wroberts/pytimeparse>`_.

Example:

.. code:: sh

    dcgc --max-container-age 3days --max-image-age 30days


Prevent images from being removed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

``dcgc`` supports an image exclude list. If you have images that you'd like
to keep around forever you can use the exclude list to prevent them from
being removed.

::

    --exclude-image
        Never remove images with this tag. May be specified more than once.

    --exclude-image-file
        Path to a file which contains a list of images to exclude, one
        image tag per line.



dcstop
------

Stop containers that have been running for too long.

``dcstop`` will ``docker stop`` containers where the container name starts
with `--prefix` and it has been running for longer than `--max-run-time`.


Example:

.. code:: sh

    dcstop --max-run-time 2days --prefix "projectprefix_"