Skopeo 1.0 released

Skopeo is a tool for moving container images between different types of container storages.  It allows you to copy container images between container registries like docker.io, quay.io, and your internal container registry or different types of storage on your local system. You can copy to a local container/storage repository, even directly into a Docker daemon.

One of the best things about Skopeo is you don’t have to be root to execute it, and you don’t need to store the images locally if you are just copying from one container registry to another. Skopeo does not require a daemon to be running to perform its operations. I believe it is a much better solution than having to run podman pull IMAGE; podman push IMAGE.

Skopeo is being used all over the world to move container images. It is used in CI/CD systems to keep container registries up to date, as well as loading up container storage for all different kinds of container servers.

USAGE

Skopeo operates on the following image and repository types:

  • Container Registries:

An image in a registry implementing the “Docker Registry HTTP API V2”. docker://docker-reference.  Authorization state is stored in $XDG_RUNTIME_DIR/containers/auth.json, which is set using (skopeo login).

  • Container Storage

An image located in a local containers/storage image store. Location and image store specified in /etc/containers/storage.conf.

  • Local file system

An existing local directory path storing the manifest, layer tarballs and signatures as individual files. This is a non-standardized format, primarily useful for debugging or noninvasive container inspection.

  • Docker Archive

An image is stored in the docker save formatted file. docker-reference is only used when creating such a file, and it must not contain a digest.

  • Docker Daemon

An image docker-reference stored in the docker daemon internal storage. docker-reference must contain either a tag or a digest. Alternatively, when reading images, the format can also be docker-daemon:algo:digest (an image ID).

  • Local directory with OCI formatting

An image tag in a directory compliant with “Open Container Image Layout Specification” at path.

Examples

Inspecting a repository

Copying images

Skopeo can copy container images between various storage mechanisms:

Deleting images from a registry

For example,

$ skopeo delete docker://localhost:5000/imagename:latest

Conclusion

Skopeo is a great lightweight tool to help users and administrators maintain their container image infrastructure. Although it has not received the attention that it probably deserves, Skopeo is a really terrific tool to have in your own toolbox.

The upstream release is now available, we expect to see Skopeo 1.0 in the Red Hat Enterprise Linux 8.3 release.

More Information here.

Leave a Reply

Your email address will not be published. Required fields are marked *