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