# US 12,217,049 B2 · Docker image registry synchronization service

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,217,049 B2
- Document ID: US12217049B2
- Status: Granted
- Kind: B2
- Application number: 18/490,606
- Filed: 2023-10-19
- Published: 2024-02-29
- Granted: 2025-02-04
- Earliest claimed: 2022-08-31
- Assignees: Confluent, Inc.
- Applicants: Confluent, Inc.
- Inventors: Greg Hensley
- Web page: https://patentgrep.com/patent/US12217049B2

## CPC

- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 16/178: Techniques for file synchronisation in file systems
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method of synchronizing container image lists is provided. A first container image list having first container images is accessed from a remote source. The first container images listed in the first container image list include a first tag and a first digest. A second container image list having second container images is accessed from a cloud-computing system registry. The second container images listed in the second container image list include a second tag and a second digest. Container images in the accessed container image lists are compared with each other. The comparison includes comparing the first tag with the second tag and, based on the tag comparison, the first digest with the second digest. The first container image list is synchronized with the second container image list based on the comparison of the container images.

## Claims

### Claim 1

A method of synchronizing a first container image list with a second container image list, the method comprising:
configuring a tag filter to compare different portions of a tag;
accessing the first container image list from a remote source where first container images listed in the first container image list include first tags each having a first portion and at least one of the first tags having a second portion, the first container image list including first digests associated with the first tags;
comparing first portions of the first tags with the tag filter during a first filtering process;
comparing second portions of the first tags with the tag filter during a second filtering process;
keeping the first container images having first tags that have passed only the first filtering process;
accessing the second container image list from a cloud-computing system registry where second container images listed in the second container image list include second tags, the second container image list including second digests associated with the second tags;
comparing the first container images with the second container images by:
comparing first tags that have passed only the first filtering process with the second tags associated with the second container images; and
determining that the first tags have passed only the first filtering process; and
synchronizing the first container image list with the second container image list based on the comparison of the first container images with the second container images, the synchronizing comprising:
downloading a container image listed on the first container image list from the remote source;
creating copies of the downloaded container image listed on the first container image list;
pushing a first copy of the copies of the downloaded container image to a first repository associated with the cloud-computing system registry, the first repository having a first repository tag of the second tags and a first repository digest of the second digests, the first copy being pushed when there is a mismatch of either first repository tag with one of the first tags or the first repository digest with one of the first digests; and
pushing a second copy of the copies of the downloaded container image to a second repository associated with the cloud-computing system registry, the second repository having a second repository tag of the second tags and a second repository digest of the second digests, the second copy being pushed when there is a mismatch of either second repository tag with one of the first tags or the second repository digest with one of the first digests.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first portion is a numerical value and the second portion is an alpha-numeric value.

### Claim 3 (depends on 2)

The method of claim 2, wherein the first tags that have passed the first filtering process and the second filtering process only have the numerical value.

### Claim 4 (depends on 1)

The method of claim 1, wherein a first digest of the first digests is compared with a second digest of the second digests when a match occurs between a first tag of the first tags and a second tag of the second tags during the comparison.

### Claim 5 (depends on 4)

The method of claim 4, wherein the first digest includes a hash and the second digest includes a hash that matches the first digest hash and the synchronization is performed based on the first digest hash matching the second digest hash.

### Claim 6 (depends on 1)

The method of claim 1, wherein comparing the first container images with the second container images further comprises:
determining that the first container image list includes a container image not listed on the second container image list;
downloading an instance of the container image listed on the first container list and not listed on the second container image from the remote source; and
synchronizing the first container image list with the second container image list includes adding the container image listed on the first container image list and not listed on the second container image list to a repository associated with the cloud-computing system registry in response to determining that the container image listed on the first container image list is not listed on the second container image list.

### Claim 7

A system for synchronizing a first container image list with a second container image list, the system comprising:
at least one processor; and
at least one memory including instructions that, when executed by the at least one processor, cause the at least one processor to perform operations comprising:
configuring a tag filter to compare different portions of a tag;
accessing the first container image list from a remote source where first container images listed in the first container image list include first tags each having a first portion and at least one of the first tags having a second portion, the first container image list including first digests associated with the first tags;
comparing first portions of the first tags with the tag filter during a first filtering process;
comparing second portions of the first tags with the tag filter during a second filtering process;
keeping the first container images having first tags that have passed only the first filtering process;
accessing the second container image list from a cloud-computing system registry where second container images listed in the second container image list include second tags, the second container image list including second digests associated with the second tags;
comparing the first container images with the second container images by:
comparing first tags that have passed only the first filtering process with the second tags associated with the second container images; and
determining that the first tags have passed only the first filtering process; and
synchronizing the first container image list with the second container image list based on the comparison of the first container images with the second container images, the synchronizing comprising:
downloading a container image listed on the first container image list from the remote source;
creating copies of the downloaded container image listed on the first container image list;
pushing a first copy of the copies of the downloaded container image to a first repository associated with the cloud-computing system registry, the first repository having a first repository tag of the second tags and a first repository digest of the second digests, the first copy being pushed when there is a mismatch of either first repository tag with one of the first tags or the first repository digest with one of the first digests; and
pushing a second copy of the copies of the downloaded container image to a second repository associated with the cloud-computing system registry, the second repository having a second repository tag of the second tags and a second repository digest of the second digests, the second copy being pushed when there is a mismatch of either second repository tag with one of the first tags or the second repository digest with one of the first digests.

### Claim 8 (depends on 7)

The system of claim 7, wherein the first portion is a numerical value and the second portion is an alpha-numeric value and the first tags that have passed the first filtering process and the second filtering process only have the numerical value.

### Claim 9 (depends on 7)

The system of claim 7, wherein a first digest of the first digests is compared with a second digest of the second digests when a match occurs between a first tag the first tags and a second tag of the second tags during the comparison and the first digest includes a hash and the second digest includes a hash that matches the first digest hash and the synchronization is performed based on the first digest hash matching the second digest hash.

### Claim 10 (depends on 7)

The system of claim 7, wherein comparing the first container images with the second container images further comprises:
determining that the first container image list includes a container image not listed on the second container image list;
downloading an instance of the container image listed on the first container image list and not listed on the second container image from the remote source; and
synchronizing the first container image list with the second container image list includes adding the container image listed on the first container list and not listed on the second container image list to a repository associated with the cloud-computing system registry in response to determining that the container image listed on the first container image list is not listed on the second container image list.

### Claim 11

A non-transitory machine-readable medium having instructions embodied thereon for synchronizing a first container image list with a second container image list, the instructions executable by a processor of a machine to perform operations comprising:
configuring a tag filter to compare different portions of a tag;
accessing the first container image list from a remote source where first container images listed in the first container image list include first tags each having a first portion and at least one of the first tags having a second portion, the first container image list including first digests associated with the first tags;
comparing first portions of the first tags with the tag filter during a first filtering process;
comparing second portions of the first tags with the tag filter during a second filtering process;
keeping the first container images having first tags that have passed only the first filtering process;
accessing the second container image list from a cloud-computing system registry where second container images listed in the second container image list include second tags, the second container image list including second digests associated with the second tags;
comparing the first container images with the second container images by:
comparing first tags that have passed only the first filtering process with the second tags associated with the second container images;
determining that the first tags have passed only the first filtering process; and
synchronizing the first container image list with the second container image list based on the comparison of the first container images with the second container images, the synchronizing comprising:
downloading a container image listed on the first container image list from the remote source;
creating copies of the downloaded container image listed on the first container image list;
pushing a first copy of the copies of the downloaded container image to a first repository associated with the cloud-computing system registry, the first repository having a first repository tag of the second tags and a first repository digest of the second digests, the first copy being pushed when there is a mismatch of either first repository tag with one of the first tags or the first repository digest with one of the first digests; and
pushing a second copy of the copies of the downloaded container image to a second repository associated with the cloud-computing system registry, the second repository having a second repository tag of the second tags and a second repository digest of the second digests, the second copy being pushed when there is a mismatch of either second repository tag with one of the first tags or the second repository digest with one of the first digests.

### Claim 12 (depends on 11)

The non-transitory machine-readable medium of claim 11, wherein the first portion is a numerical value and the second portion is an alpha-numeric value and the first tags that have passed the first filtering process and the second filtering process only have the numerical value.

### Claim 13 (depends on 11)

The non-transitory machine-readable medium of claim 11, wherein a first digest of the first digests is compared with a second digest of the second digests when a match occurs between a first tag of the first tags and a second tag of the second tags during the comparison and the first digest includes a hash and the second digest includes a hash that matches the first digest hash and the synchronization is performed based on the first digest hash matching the second digest hash.

### Claim 14 (depends on 11)

The non-transitory machine-readable medium of claim 11, wherein comparing the first container images with the second container images further comprises:
determining that the first container image list includes a container image not listed on the second container image list;
downloading an instance of the container image listed on the first container list and not listed on the second container image from the remote source; and
synchronizing the first container image list with the second container image list includes adding the container image listed on the first container image list and not listed on the second container image list to a repository associated with the cloud-computing system registry in response to determining that the container image listed on the first container image list is not listed on the second container image list.
