On Thu, Jan 18, 2018 at 9:07 AM, Tom McKay <thomasmckay redhat com> wrote:
> Perfect, thanks!
> Overall I do think there is a need for this utility; has anyone else heard
> the need? Could it be part of the atomic command or are there utility
> scripts associated with skopeo and/or atomic?
I've not heard a specific need until this email. I tend to think that
mirror functionality should either be part of skopeo as a subcommand
or it's own tool which requires skopeo.
> For myself, I am enhancing (and accepting enhancement requests! ;)
> Foreman / Satellite-6 to better handle images in a disconnected
> environment (very common). I'll use skopeo to export from a registry and
> then upload to the container image storage tool built into Foreman, Pulp.
> Foreman acts as a registry for these uploaded images. In connected cases
> Foreman can simply sync all of this information directly from the other
>  https://theforeman.org/
>  https://pulpproject.org/
I think a good first step to see if it would fit skopeo would be to
open an issue up with the information. I believe some of the more
involved developers could give a better response in terms of if it
would make sense to live inside or outside skopeo proper.
> On Wed, Jan 17, 2018 at 11:31 AM, Stephen Milner <smilner redhat com> wrote:
>> On Wed, Jan 17, 2018 at 9:55 AM, Tom McKay <thomasmckay redhat com> wrote:
>> > If I wanted to sneaker-net an image and all its tags and manifest lists,
>> > could I use skopeo? The goal would be to mirror a registry completely.
>> > As an example, consider docker.io/busybox which has schema1, schema2,
>> > and
>> > manifest lists.
>> Hey Tom,
>> You could but, from my understanding, it would require some scripting
>> of sorts. Keep in mind I didn't test this in terms of mirroring but it
>> seems like it would get you at least pretty close to the files you
>> You could start by inspecting the image in the original registry:
>> skopeo inspect docker://docker.io/busybox
>> This will provide you with json output that includes tags. For each
>> tag you would use copy to pull that specific image down locally into a
>> one of the available formats for loading later and pull the manifest.
>> A quick and dirty script to parse the tags from STDIN can be found at
ashcrow/. f327431cad90c26bbce94debd80a3e 74
>> To get the manifests for each image you will run something like:
>> skopeo inspect --raw docker://docker.io/busybox:$
>> Note that you'll get either a v1 or v2 depending on what is stored on
>> the remote registry.
>> You'd also want to use copy to actually get the image data itself.
>> Something like:
>> skopeo copy docker://docker.io/busybox:$
>> From here you'd move the blobs into the right directory structure from
BLOBHASH -> busybox/blobs/sha256:$BLOBHASH
>> then clean up the busybox-tmp dir.
>> This should get you pretty far in terms of getting what you need to
>> mirror an image from a registry. Again, keep in mind I didn't actually
>> test that this creates everything you need to be a mirror of an image
>> but at the very least it should get you started.
>> Steve Milner
>> Atomic | Red Hat | http://projectatomic.io/
Atomic | Red Hat | http://projectatomic.io/