Created
May 20, 2014 16:09
-
-
Save vbatts/c1acc9cb1ccd5344d269 to your computer and use it in GitHub Desktop.
get sizes of docker image layers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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