Skip to content

Instantly share code, notes, and snippets.

@mindreframer
Created December 4, 2013 13:51
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save mindreframer/7787702 to your computer and use it in GitHub Desktop.
Save mindreframer/7787702 to your computer and use it in GitHub Desktop.
volumes clearing script for docker, a copy from https://github.com/dotcloud/docker/issues/197 with some fixes
#!/usr/bin/python
import json
import os
import shutil
import subprocess
import re
dockerdir = '/var/lib/docker'
volumesdir = os.path.join(dockerdir, 'volumes')
containers = dict((line, 1) for line in subprocess.check_output('docker ps -a -q -notrunc', shell=True).splitlines())
volumes = os.walk(os.path.join(volumesdir, '.')).next()[1]
for volume in volumes:
if not re.match('[0-9a-f]{64}', volume):
print volume + ' is not a valid volume identifier, skipping...'
continue
volume_metadata = json.load(open(os.path.join(volumesdir, volume, 'json')))
container_id = volume_metadata['id']
if container_id in containers:
print 'Container ' + container_id[:12] + ' does still exist, not clearing up volume ' + volume
continue
print 'Deleting volume ' + volume + ' (container: ' + container_id[:12] + ')'
volumepath = os.path.join(volumesdir, volume)
print 'Volumepath: ' + volumepath
shutil.rmtree(volumepath)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment