Skip to main content

docker-image-py

Parse docker image as distribution does.

Usage

Install

You can install from PyPI.

$ pip install docker-image-py

Or install from GitHub for latest version.

$ pip install https://github.com/realityone/docker-image-py/archive/master.zip

Parse Docker Image Names

For most user input, use parse_normalized_named(). This follows Docker CLI rules for familiar names: it fills in docker.io, adds library/ for official images, and keeps custom registries intact.

>>> from docker_image import reference
>>>
>>> ref = reference.Reference.parse_normalized_named('ubuntu')
>>> print(ref)
{'name': 'docker.io/library/ubuntu', 'tag': None, 'digest': None}
>>> print(ref.familiar_name())
ubuntu
>>> ref = reference.Reference.parse_normalized_named('containous/traefik')
>>> print(ref)
{'name': 'docker.io/containous/traefik', 'tag': None, 'digest': None}
>>> hostname, name = ref.split_hostname()
>>> print('hostname: {}, name: {}'.format(hostname, name))
hostname: docker.io, name: containous/traefik
>>> ref = reference.Reference.parse_normalized_named('daocloud.io/nginx:latest')
>>> print(ref)
{'name': 'daocloud.io/nginx', 'tag': 'latest', 'digest': None}

Do not use parse() for every image string. parse() is the raw syntax parser from the distribution reference grammar; it does not infer Docker Hub defaults. Use it when the input is already a literal reference and you want grammar-level parsing only.

>>> from docker_image import reference
>>>
>>> ref = reference.Reference.parse('nginx:latest')
>>> print(ref)
{'name': 'nginx', 'tag': 'latest', 'digest': None}
>>> ref = reference.Reference.parse('daocloud.io/nginx')
>>> print(ref)
{'name': 'daocloud.io/nginx', 'tag': None, 'digest': None}
>>> hostname, name = ref.split_hostname()
>>> print('hostname: {}, name: {}'.format(hostname, name))
hostname: daocloud.io, name: nginx
>>> ref = reference.Reference.parse(
...     'daocloud.io/nginx:1.11-alpine@sha256:14bf491df1d58404433b577e093c906460871ee677d18caa276d9c03727e0b33'
... )
>>> print(ref)
{'name': 'daocloud.io/nginx', 'tag': '1.11-alpine', 'digest': 'sha256:14bf491df1d58404433b577e093c906460871ee677d18caa276d9c03727e0b33'}

One common mistake is expecting raw parse() to apply Docker Hub namespace rules. It does not:

>>> from docker_image import reference
>>>
>>> raw = reference.Reference.parse('containous/traefik')
>>> raw.split_hostname()
('containous', 'traefik')
>>> normalized = reference.Reference.parse_normalized_named('containous/traefik')
>>> hostname, name = normalized.split_hostname()
>>> print('hostname: {}, name: {}'.format(hostname, name))
hostname: docker.io, name: containous/traefik

Reference

Download files

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

Source Distribution

docker_image_py-0.2.0.tar.gz (16.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docker_image_py-0.2.0-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file docker_image_py-0.2.0.tar.gz.

File metadata

  • Download URL: docker_image_py-0.2.0.tar.gz
  • Upload date:
  • Size: 16.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for docker_image_py-0.2.0.tar.gz
Algorithm Hash digest
SHA256 451ad5b3b656d00797e2b84e7ee2629a01012c52a83439cbcfbdeadc3ead3ae1
MD5 028aede6c16bd93930b27b6c737298c5
BLAKE2b-256 d4c9b595f95322857b97ff471806ff14a64ea0e41bcd81a88fbbfe09a0190d28

See more details on using hashes here.

File details

Details for the file docker_image_py-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for docker_image_py-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de6fa26bb4f90a1ad54be1dabc3cb0447007c37e396a5f2bfce5a4aadf15f0c9
MD5 510295cc989385e342c9da7ba5330c31
BLAKE2b-256 b6caf1640909d860379c5ef0e7c2f94c81e654de3ce77add4a88be61674fe20c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

1 file

0.1.10

2 files

0.1.5

1 file

0.1.4

1 file

0.1.3

1 file

0.1.2

1 file

0.1.1

1 file

0.1

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page