Skip to main content

Python library for interacting with container image registries

Project description

pyregistry

pyregistry is a Python library and CLI tool for inspecting and copying container image data from and between registries.

This library primarily focuses on being a useful tool for dealing with container image registries. It has very limited support for interpretation of the objects stored within.

Library usage

Find sub-manifest based on platform.

async with AsyncRegistryClient() as client:
    manifest_ref = parse_image_name("alpine")
    manifest = await client.manifest_download(manifest_ref)

    if isinstance(manifest, ManifestListV2S2):
        for sub_manifest in manifest.manifests:
            if sub_manifest.platform.architecture == "amd64":
                manifest_ref.ref = sub_manifest.digest
                manifest = await client.manifest_download(manifest_ref)
                break
        else:
            raise Exception("Found no matching platform")
    else:
        print("Not a manifest list")

Download layers of an image

for layer in manifest.layers:
    assert layer.media_type == "application/vnd.docker.image.rootfs.diff.tar.gzip"
    blob_ref = RegistryBlobRef(manifest_ref.registry, manifest_ref.repo, layer.digest)

    # For example we just download into memory. In practice don't do this.
    blob_data = io.BytesIO(
        b"".join([chunk async for chunk in client.ref_content_stream(blob_ref)])
    )
    with tarfile.open(mode="r|*", fileobj=blob_data) as tar:
        for tarinfo in tar.getmembers():
            print(tarinfo.name)

CLI copy tool

# By default it will pull credentials based on ~/.docker/config.json 
python -m aioregistry ubuntu:18.04 my.private.registry/my-repo:my-tag
# Copy all tags matching regex
python -m aioregistry ubuntu my.private.registry/my-repo --tag-pattern '18\..*'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aioregistry-0.6.1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

aioregistry-0.6.1-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file aioregistry-0.6.1.tar.gz.

File metadata

  • Download URL: aioregistry-0.6.1.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.10

File hashes

Hashes for aioregistry-0.6.1.tar.gz
Algorithm Hash digest
SHA256 39c72867d0e40a878db65cede6f124dddcc8c20b3406bf8c08631ecbd4cc5d48
MD5 65d4c90563c249274028661138470141
BLAKE2b-256 fb3299e6ef5392a7a9a4a4cc4d3d445daff210fe772fb07eaaa10e660c150648

See more details on using hashes here.

File details

Details for the file aioregistry-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: aioregistry-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 17.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.8.10

File hashes

Hashes for aioregistry-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0c805c88641d3728b5536cc47a33244bacd060a5087017b04294e6dd4972082a
MD5 79b0b8918bda9f8e6b11ebc2902b7918
BLAKE2b-256 3aaf383355aac030c1fdd3fff51fc60058622a02d23ad9ca7cce9fcc43a523a4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page