Sha256: a57e5662b39a52b13093dd314c27db3b41b88fa531f82f29d9a53c7aba8bc23a

Contents?: true

Size: 1.1 KB

Versions: 29

Compression:

Stored size: 1.1 KB

Contents

#!/usr/bin/env ruby

containers = `docker ps -a -q`.chomp.split("\n").sort

purge_all = ARGV.delete('-a')
kill_running_containers = ARGV.delete('-r') || purge_all
delete_data_containers = ARGV.delete('-d') || purge_all
delete_tagged_images = ARGV.delete('-t') || purge_all

unless kill_running_containers
  running_containers = `docker ps -q`.chomp.split("\n").sort
  containers = containers - running_containers
end

unless delete_data_containers
  containers = containers.find_all do |cid|
    container_name = `docker inspect -f '{{.Name}}' #{cid}`.chomp[1..-1]
    container_name !~ /-data$/
  end
end

containers.each do |cid|
  system 'docker', 'kill', cid, err: '/dev/null'
  system 'docker', 'rm', cid, err: '/dev/null'
end

images = `docker images`.chomp.split("\n")[1..-1].map do |ln|
  parts = ln.split(' ').map{ |part| part unless part == '<none>' }
  image_name = (parts[0] and parts[1]) ? "#{parts[0]}:#{parts[1]}" : nil
  {id: parts[2], name: image_name}
end

unless delete_tagged_images
  images = images.delete_if{ |image| image[:name] }
end

images.each do |image|
  system 'docker', 'rmi', '-f', image[:id]
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
docker-utils-0.1.33 ./share/scripts/gc
docker-utils-0.1.32 ./share/scripts/gc
docker-utils-0.1.31 ./share/scripts/gc
docker-utils-0.1.30 ./share/scripts/gc
docker-utils-0.1.29 ./share/scripts/gc
docker-utils-0.1.27 ./share/scripts/gc
docker-utils-0.1.26 ./share/scripts/gc
docker-utils-0.1.25 ./share/scripts/gc
docker-utils-0.1.24 ./share/scripts/gc
docker-utils-0.1.23 ./share/scripts/gc
docker-utils-0.1.22 ./share/scripts/gc
docker-utils-0.1.21 ./share/scripts/gc
docker-utils-0.1.20 ./share/scripts/gc
docker-utils-0.1.19 ./share/scripts/gc
docker-utils-0.1.18 ./share/scripts/gc
docker-utils-0.1.17 ./share/scripts/gc
docker-utils-0.1.16 ./share/scripts/gc
docker-utils-0.1.15 ./share/scripts/gc
docker-utils-0.1.14 ./share/scripts/gc
docker-utils-0.1.13 ./share/scripts/gc