• Stars
    star
    263
  • Rank 155,624 (Top 4 %)
  • Language
    Go
  • License
    GNU Affero Genera...
  • Created over 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Deckschrubber inspects images of a Docker Registry and removes those older than a given age. πŸ”†πŸš’

Deckschrubber

n. person responsible for scrubbing a ship's deck.

Go Report Card License

Deckschrubber inspects images of a Docker Registry and removes those older than a given age.

Quick Start

go get github.com/fraunhoferfokus/deckschrubber
$GOPATH/bin/deckschrubber

Why this?

We run our own private registry on a server with limited storage and it was only a question of time, until it was full! Although there are similar approaches to do Docker registry house keeping (in Python, Ruby, etc), a native module (using Docker's own packages) was missing. This module has the following advantages:

  • Is binary!: No runtime, Python, Ruby, etc. is required
  • Uses Docker API: same packages and modules used to relaze Docker registry are used here

Arguments

-day int
      max age in days
-debug
      run in debug mode      
-dry
      does not actually deletes
-latest int
      number of the latest matching images of an repository that won't be deleted (default 1)      
-month int
      max age in months
-registry string
      URL of registry (default "http://localhost:5000")
-repo string
      matching repositories (allows regexp) (default ".*")      
-repos int
      number of repositories to garbage collect (default 5)
-tag string
      matching tags (allows regexp) (default ".*")      
-ntag string
      match everything but this tag (allows regexp) (default empty)
-v    shows version and quits
-year int
      max age in days
      
      

Registry preparation

Deckschrubber uses the Docker Registry API. Its delete endpoint is disabled by default, you have to enable it with the following entry in the registry configuration file:

delete:
  enabled: true

See the documentation for details.

Examples

  • Remove all images older than 2 months and 2 days
$GOPATH/bin/deckschrubber -month 2 -day 2
  • Remove all images older than 1 year from http://myrepo:5000
$GOPATH/bin/deckschrubber -year 1 -registry http://myrepo:5000
  • Analyize (but do not remove) images of 30 repositories
$GOPATH/bin/deckschrubber -repos 30 -dry
  • Remove all images of each repository except the 3 latest ones
$GOPATH/bin/deckschrubber -latest 3 
  • Remove all images with tags that ends with '-SNAPSHOT'
$GOPATH/bin/deckschrubber -tag ^.*-SNAPSHOT$ 

More Repositories

1

open-content-decryption-module

Open Content Decryption Module (OCDM)
C++
117
star
2

acsl-by-example

Public snapshots of "ACSL by Example"
TeX
99
star
3

JSum

Consistent checksum calculation of JSON objects.
JavaScript
87
star
4

Fuzzino

Java
62
star
5

cordova-plugin-presentation

Create native multiscreen apps in minutes with the Cordova (W3C) Presentation API Plugin.
Objective-C
50
star
6

node-hbbtv

The Node.js hbbtv module is a feature complete implementation of the HbbTV 2.0 Companion Screen components
JavaScript
50
star
7

peer-dial

peer-dial is a simple Node.js module implementing the Discovery and Launch Protocol DIAL as described in the specification on http://www.dial-multiscreen.org
JavaScript
42
star
8

Qrisp

Qrisp - a framework for high-level programming of Quantum computers
Python
41
star
9

peer-upnp

Node.js Client and Server module implementing the Universal Plug and Play protocol UPnP
JavaScript
32
star
10

ogd-metadata

Schema and documentation to be used by the German Open Data Portal
HTML
29
star
11

peer-ssdp

Node.js Client and Server module implementing the Simple Service Discovery Protocol SSDP
JavaScript
25
star
12

open-content-decryption-module-cdmi

CDMi skeleton platform component implementation to be used with Open Content Decryption Module
C
20
star
13

particity

Participatory marketplace for voluntary services/donations
Java
19
star
14

OCDB

Open City Database - Quick, easily-deployable smart city-related data service, with access to User Generated Content, POIs, social interactions (likes, check-ins) and more.
JavaScript
16
star
15

phyweb

Node.js Physical Web URL Advertiser
JavaScript
13
star
16

opendata-platform

Java
10
star
17

cordova-plugin-hbbtv

This Cordova HbbTV plugin implements the HbbTV 2.0 CS APIs for discovering HbbTV Terminals, launching HbbTV Applications on discovered Terminals and open App2App communication channels between the Cordova App (Companion App) and the launched HbbTV App using WebSockets
Java
9
star
18

cordova-plugin-presentation-helloapp

Sample App using the Cordova (W3C) Presentation API Plugin.
JavaScript
8
star
19

openstack-formula

SaltStack Formula for all Components of OpenStack
Python
7
star
20

mobile-city-memory

Mobile city memory app developed for the Code for Europe project
Python
5
star
21

cordova-plugin-hbbtv-helloapp

Sample App using the Cordova HbbTV Plugin https://github.com/fraunhoferfokus/cordova-plugin-hbbtv
JavaScript
5
star
22

ckanext-govdatade

GovData.de specific CKAN extension
Python
4
star
23

GovData

Das Datenportal fΓΌr Deutschland (Beta)
HTML
3
star
24

Xtensions

This library provides utility extension methods, mostly for JDK 8 classes.
Xtend
3
star
25

ot3

OT3 provides an open source edition of the TTCN-3 test language.
Java
3
star
26

wot-ble-experiment

Experiment for WoT BLE Binding
JavaScript
2
star
27

ckanext-berlin

JavaScript
2
star
28

RDFRuleStreams

HTML
1
star
29

fixmycity

http://www.fixmycity.de
JavaScript
1
star
30

fokus-upnp

Open UPnP Stack
Java
1
star
31

RESTAC

RESTAC is a peer-to-peer Java framework implementing REST.
Java
1
star
32

govapps

GovApps is a platform that provides users the opportunity to find mobile apps in public and private sources regionally and by priorities
Java
1
star
33

ckanclient-java

1
star
34

dt-test-exoplayer

1
star
35

odp-rss-servlet

Java
1
star
36

wot-cli

A command-line tool for the Web of Things
JavaScript
1
star
37

clm-core

TypeScript
1
star
38

promised-hal

Simplifies communication with HAL enabled servers using promises.
JavaScript
1
star