Skip to content

Instantly share code, notes, and snippets.

@vbatts
Created May 20, 2014 16:09
Show Gist options
  • Save vbatts/c1acc9cb1ccd5344d269 to your computer and use it in GitHub Desktop.
Save vbatts/c1acc9cb1ccd5344d269 to your computer and use it in GitHub Desktop.
get sizes of docker image layers
#!/usr/bin/env ruby
DOCKER = ENV["DOCKER"] || "/usr/bin/docker"
NO_VALUE = '<no value>'
def main(args)
args.each do |arg|
image_id = get_image_id(arg)
#next if image_id.length == 0
puts "#{arg} [#{image_id}]"
loop do
size = get_layer_size(image_id)
puts " %s - %f" % [image_id[0..12], size]
p_id = get_layer_parent(image_id)
break if p_id == NO_VALUE
image_id = p_id
end
end
end
def get_layer_parent(layer_id)
docker "inspect -f '{{.parent}}' #{layer_id}"
end
def get_layer_size(layer_id)
docker "inspect -f '{{.Size}}' #{layer_id}"
end
def get_image_id(name)
docker "images -q #{name}"
end
def docker(args)
`#{DOCKER} #{args}`.chomp
end
main(ARGV)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment