{"action":"created","issue":{"url":"https://api.github.com/repos/docker/docker/issues/25091","repository_url":"https://api.github.com/repos/docker/docker","labels_url":"https://api.github.com/repos/docker/docker/issues/25091/labels{/name}","comments_url":"https://api.github.com/repos/docker/docker/issues/25091/comments","events_url":"https://api.github.com/repos/docker/docker/issues/25091/events","html_url":"https://github.com/docker/docker/issues/25091","id":167714277,"number":25091,"title":"Pull will unconditionally download and expand all layers for an image, even if those layers are already present on the box","user":{"login":"swernli","id":10567287,"avatar_url":"https://avatars.githubusercontent.com/u/10567287?v=3","gravatar_id":"","url":"https://api.github.com/users/swernli","html_url":"https://github.com/swernli","followers_url":"https://api.github.com/users/swernli/followers","following_url":"https://api.github.com/users/swernli/following{/other_user}","gists_url":"https://api.github.com/users/swernli/gists{/gist_id}","starred_url":"https://api.github.com/users/swernli/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/swernli/subscriptions","organizations_url":"https://api.github.com/users/swernli/orgs","repos_url":"https://api.github.com/users/swernli/repos","events_url":"https://api.github.com/users/swernli/events{/privacy}","received_events_url":"https://api.github.com/users/swernli/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/docker/docker/labels/group/distribution","name":"group/distribution","color":"F6FBFF"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-07-26T21:17:44Z","updated_at":"2016-08-02T23:34:54Z","closed_at":null,"body":"@stevvooe @aaronlehmann \r\nWhen performing a docker pull, the only check that is performed to see if the host already contains the data is based on the image hash.  This means that all layers in that image end up getting downloaded and expanded if the image isn't present, even if some of the intermediate layers are.  In the case of Windows, where base layer can be multiple GB in size, there is a very high cost to downloading, expanding and processing the layer into the graphdriver only to end up deleting it once the layerstore identifies it as a duplicate.\r\n\r\nIdeally, the pull code would check the hashes of the layers provided in metadata against the layerstore first and skip downloading layers that are already present on the machine.\r\n\r\nFYI @jhowardmsft @jstarks "},"comment":{"url":"https://api.github.com/repos/docker/docker/issues/comments/237082624","html_url":"https://github.com/docker/docker/issues/25091#issuecomment-237082624","issue_url":"https://api.github.com/repos/docker/docker/issues/25091","id":237082624,"user":{"login":"aaronlehmann","id":10601430,"avatar_url":"https://avatars.githubusercontent.com/u/10601430?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronlehmann","html_url":"https://github.com/aaronlehmann","followers_url":"https://api.github.com/users/aaronlehmann/followers","following_url":"https://api.github.com/users/aaronlehmann/following{/other_user}","gists_url":"https://api.github.com/users/aaronlehmann/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronlehmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronlehmann/subscriptions","organizations_url":"https://api.github.com/users/aaronlehmann/orgs","repos_url":"https://api.github.com/users/aaronlehmann/repos","events_url":"https://api.github.com/users/aaronlehmann/events{/privacy}","received_events_url":"https://api.github.com/users/aaronlehmann/received_events","type":"User","site_admin":false},"created_at":"2016-08-02T23:34:53Z","updated_at":"2016-08-02T23:34:53Z","body":"I don't think it would affect pull. You would need the reverse mapping for pull."}}
{"actor":{"display_login":"aaronlehmann"}}