IP Library Granted Patent US 12,217,049
Granted Patent B2
US 12,217,049 · App. 18/490,606 · Granted Feb 4, 2025

Docker image registry synchronization service

Inventor: Greg Hensley (Seattle, WA)
Assignee: Confluent, Inc.
G06F8/71G06F8/65
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,217,049
App. No.
18/490,606
Granted
Feb 4, 2025
Kind
B2
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 (67)

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.

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

3. 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.

4. 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.

5. 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.

6. 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.

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.

8. 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.

9. 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.

10. 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.

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.

12. 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.

13. 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.

14. 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.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2026
From: CONFLUENT, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 075569/0163 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECTING THE APPLICANT NAME PREVIOUSLY RECORDED AT REEL: 65285 FRAME: 437. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 19, 2024
From: HENSLEY, GREG
To: CONFLUENT, INC.
Reel/Frame 067779/0993 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2023
From: HENSLEY, GREG
To: SNAP INC.
Reel/Frame 065285/0437 →
Continuity (2)
Continuation 17900477 · Aug 31, 2022
Related Publication 20240069911A1 · Feb 29, 2024
References Cited (17)
US 20060130037A1 · Mackay · 2006 [cited by applicant]
US 20160140141A1 · Darcy · 2016 [cited by applicant]
US 20190347121A1 · Luo et al. · 2019 [cited by applicant]
US 20210255846A1 · Mamgain et al. · 2021 [cited by applicant]
WO 2021232845 · 2021 [cited by applicant]
WO 2024050315 · 2024 [cited by applicant]
U.S. Appl. No. 17/900,477, filed Aug. 31, 2022, Docker Image Registry Synchronization Service. [cited by applicant]
“U.S. Appl. No. 17/900,477, Examiner Interview Summary mailed Jun. 2, 2023”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 17/900,477, Final Office Action mailed Apr. 7, 2023”, 26 pgs. [cited by applicant]
“U.S. Appl. No. 17/900,477, Non Final Office Action mailed Dec. 28, 2022”. [cited by applicant]
“U.S. Appl. No. 17/900,477, Notice of Allowance mailed Jul. 27, 2023”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/900,477, Response filed Mar. 27, 2023 to Non Final Office Action mailed Dec. 28, 2022”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 17/900,477, Response filed Jun. 6, 2023 to Final Office Action mailed Apr. 7, 2023”, 12 pgs. [cited by applicant]
“International Application Serial No. PCT US2023 073013, International Search Report mailed Dec. 12, 2023”, 5 pgs. [cited by applicant]
“International Application Serial No. PCT US2023 073013, Written Opinion mailed Dec. 12, 2023”, 4 pgs. [cited by applicant]
Marc, Brandner, “Transporting Container Images With Skopeo”, [Online] Retrieved from the internet:https: marcbrandner.com blog transporting-container-images-with-skopeo , (Apr. 11, 2021), 17 pgs. [cited by applicant]
Mjay, Savanth, “Docker Images: Name Vs. Tag Vs. Digest”, [Online] Retrieved from the internet:https: hackernoon.com docker-images-name-vs-tag-vs-digest, (Sep. 26, 2021), 4 pgs. [cited by applicant]