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.4.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

aioregistry-0.6.4-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aioregistry-0.6.4.tar.gz
  • Upload date:
  • Size: 16.2 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.4.tar.gz
Algorithm Hash digest
SHA256 57d3f7d8601b19680d962bd51bd1f7ed3d3497cf29d9fa23c36cafa9193e9679
MD5 a418e12bd92b9116963615d14e20c52c
BLAKE2b-256 d29a301ea1c419433e807e9df325a1321a9b9a0b59e9d133e6769cad7f7c5eb9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aioregistry-0.6.4-py3-none-any.whl
  • Upload date:
  • Size: 18.2 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 587a6e9c152dd076c7097d0863dee7878fcd28d5a7d4ae5184c762a94abac074
MD5 10460a9ec279467f3a5a474ffff870a2
BLAKE2b-256 2de8ca8f8ec50e54e3c06b97d190748bf5747de9518601311102ad0e224222c0

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