Working with Images

Contree SDK allows you to pull and manage container images. You can use images from public registries, your own private registries, or import Docker Hub images.

For detailed API documentation, see ImagesManager and ImagesManagerSync.

Pulling Images

You can pull images by UUID, tag, or import them from external registries:

 1print(f"Selected {image_uuid=}")
 2print(f"Selected {image_tag=}")
 3
 4print("\nPulling by UUID:")
 5result = await client.images.pull(image_uuid)
 6print(f"Pull by UUID: {result.uuid=}, {result.tag=}, {result.state=}")
 7
 8print("\nPulling by tag:")
 9result = await client.images.pull(image_tag)
10print(f"Pull by tag: {result.uuid=}, {result.tag=}, {result.state=}")
11
12print("\nImporting public image:")
13result = await client.images.pull("docker://ghcr.io/linuxserver/code-server:latest")
14print(f"Import public: {result.uuid=}, {result.tag=}, {result.state=}")

See pull() for all parameters.

 1print(f"Selected {image_uuid=}")
 2print(f"Selected {image_tag=}")
 3
 4print("\nPulling by UUID:")
 5result = client.images.pull(image_uuid)
 6print(f"Pull by UUID: {result.uuid=}, {result.tag=}, {result.state=}")
 7
 8print("\nPulling by tag:")
 9result = client.images.pull(image_tag)
10print(f"Pull by tag: {result.uuid=}, {result.tag=}, {result.state=}")
11
12print("\nImporting public image:")
13result = client.images.pull("docker://ghcr.io/linuxserver/code-server:latest")
14print(f"Import public: {result.uuid=}, {result.tag=}, {result.state=}")

See pull() for all parameters.

Import Methods

  • By UUID: client.images.pull(uuid) - Pull existing image by UUID

  • By tag: client.images.pull("ubuntu:latest") - Pull by tag name

  • From registry: client.images.pull("docker://ghcr.io/owner/image:tag") - Import from external registry

  • From private registry: client.images.pull("docker://ghcr.io/owner/image:tag", username="user", password="token") - Import from private registry with authentication

The docker:// prefix allows you to import any publicly accessible Docker image directly into Contree.

Listing Images

View all available images in your Contree instance:

 1all_images = await client.images()
 2print(f"Loaded {all_images=}")
 3
 4limited_images = await client.images(number=3)
 5print(f"Found {len(limited_images)=}")
 6
 7tagged_images = await client.images(tagged=True)
 8print(f"Found {len(tagged_images)=}")
 9
10imported_images = await client.images(kind=ImageKind.IMPORTED)
11print(f"Found {len(imported_images)=}")
12
13recent_images = await client.images(since=datetime.now() - timedelta(days=7), number=5)
14print(f"Found {len(recent_images)=}")

See ImagesManager for filtering and iteration options.

 1all_images = client.images()
 2print(f"Loaded {all_images=}")
 3
 4limited_images = client.images(number=3)
 5print(f"Found {len(limited_images)=}")
 6
 7tagged_images = client.images(tagged=True)
 8print(f"Found {len(tagged_images)=}")
 9
10imported_images = client.images(kind=ImageKind.IMPORTED)
11print(f"Found {len(imported_images)=}")
12
13recent_images = client.images(since=datetime.now() - timedelta(days=7), number=5)
14print(f"Found {len(recent_images)=}")

See ImagesManagerSync for filtering and iteration options.