IP Library Granted Patent US 10,740,132
Granted Patent B2
US 10,740,132 · App. 15/883,286 · Granted Aug 11, 2020

Systems and methods for updating containers

Inventor: Vikas Goel (Sunnyvale, CA)
Assignee: Veritas Technologies LLC
G06F9/45558G06F8/61G06F9/45533G06F9/45545G06F9/545G06F2009/45575
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 10,740,132
App. No.
15/883,286
Granted
Aug 11, 2020
Kind
B2
Abstract

The disclosed computer-implemented method for updating containers may include (i) identifying an application container that is instantiated from a static application container image, (ii) identifying ancillary code that is designed to modify execution of the application executing in the application container, (iii) packaging the ancillary code into a data volume container image to be deployed to the host system that hosts the application container, (iv) discovering, by the application container, a data volume container instantiated from the data volume container image on the host system, and (v) modifying, by the application container, the execution of the application executing in the application container with the ancillary code, without modifying the static application container image, at least in part by instantiating the application container with a pointer to the location of the data volume container that contains the ancillary code. Various other methods, systems, and computer-readable media are also disclosed.

Claims (70)

1. A computer-implemented method for updating containers,

at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying an application container that is instantiated from a static application container image and that isolates a user space of an application that executes within the application container from other software on a host system while sharing a kernel space with the other software;

identifying ancillary code that is designed to modify execution of the application executing in the application container;

packaging the ancillary code into a data volume container image to be deployed to the host system that hosts the application container;

discovering, by the application container, a pointer to a location of a data volume container instantiated from the data volume container image on the host system; and

modifying, by the application container, the execution of the application executing in the application container with the ancillary code, without modifying the static application container image, at least in part by instantiating the application container with the pointer to the location of the data volume container that contains the ancillary code; and

configuring, at the creation of the static application container image, the static application container image with a script that scans a predetermined directory for new ancillary code upon the application container being instantiated from the static application container image.

2. The computer-implemented method of claim 1 , wherein discovering, by the application container, the pointer to the location of the data volume container on the host system comprises:

discovering, by the application container executing the script, the pointer to the location of the data volume container.

3. The computer-implemented method of claim 1 , wherein:

configuring the static application container image with the script that scans for the new ancillary code comprises configuring the script to scan a predetermined directory;

packaging the ancillary code into the data volume container image to be deployed to the host system that hosts the application container comprises configuring the data volume container image to instantiate the data volume container in the predetermined directory on the host system; and

discovering, by the script, the ancillary code comprises discovering the data volume container in the predetermined directory.

4. The computer-implemented method of claim 1 , wherein discovering, by the application container, the pointer to the location of the data volume container on the host system comprises:

configuring a container platform that instantiates the application container on the host system with a script that scans for new ancillary data upon instantiation of the application container by the container platform; and

discovering, by the container platform executing the script while instantiating the application container, the location of the data volume container.

5. The computer-implemented method of claim 1 , wherein instantiating the application container with the pointer to the location of the data volume container that contains the ancillary code comprises restarting the application container.

6. The computer-implemented method of claim 1 , further comprising:

restarting the application container with an additional pointer to a location of a new data volume container that contains additional ancillary code;

discovering, by the application container, the location of the new data volume container;

automatically rediscovering, by the application container, the location of the data volume container on the host system; and

modifying, by the application container, execution of the application executing in the application container with the ancillary code and the additional ancillary code.

7. The computer-implemented method of claim 1 , wherein the ancillary code comprises a plugin to the application executing in the application container.

8. The computer-implemented method of claim 1 , wherein the ancillary code comprises a patch to the application executing in the application container.

9. The computer-implemented method of claim 1 , wherein discovering, by the application container, the location of the data volume container on the host system comprises creating a symbolic link between the location of the data volume container on the host system and a new location on the host system.

10. The computer-implemented method of claim 1 , further comprising:

identifying a first application container that hosts a first instance of the application and a second application container that hosts a second instance of the application;

identifying additional ancillary code that is designed to modify the execution of the application;

packaging the additional ancillary code into an additional data volume container image;

discovering, by the first application container, a pointer to a location of an additional data volume container instantiated from the additional data volume container image; and

modifying, by the first application container, the execution of the first instance of the application executing in the first application container with the additional ancillary code but not with the ancillary code;

modifying, by the second application container, the execution of the second instance of the application executing in the second application container with the ancillary code but not with the additional ancillary code.

11. The computer-implemented method of claim 1 , wherein modifying, by the application container, the execution of the application executing in the application container with the ancillary code, comprises:

locating, by the application container, an installation script in a data volume within the data volume container; and

executing the installation script.

12. A system for updating containers, the system comprising:

an identification module, stored in memory, that:

identifies an application container that is instantiated from a static application container image and that isolates a user space of an application that executes within the application container from other software on a host system while sharing a kernel space with the other software; and

identifies ancillary code that is designed to modify execution of the application executing in the application container;

a packaging module, stored in memory, that packages the ancillary code into a data volume container image to be deployed to the host system that hosts the application container;

a discovery module, stored in memory, that discovers, by the application container, a pointer to a location of a data volume container instantiated from the data volume container image on the host system;

a modifying module, stored in memory, that modifies, by the application container, the execution of the application executing in the application container with the ancillary code, without modifying the static application container image, at least in part by instantiating the application container with the pointer to the location of the data volume container that contains the ancillary code;

a configuration module, stored in memory, that configures, at the creation of the static application container image, the static application container image with a script that scans a predetermined directory for new ancillary code upon the application container being instantiated from the static application container image; and

at least one physical processor that executes the identification module, the packaging module, the discovery module, the modifying module, and the configuration module.

13. The system of claim 12 , wherein the discovery module discovers, by the application container, the pointer to the location of the data volume container on the host system by:

discovering, by the application container executing the script, the location of the data volume container.

14. The system of claim 12 , wherein the discovery module:

configures the static application container image with the script that scans for the new ancillary code by configuring the script to scan a predetermined directory;

packages the ancillary code into the data volume container image to be deployed to the host system that hosts the application container by configuring the data volume container image to instantiate the data volume container in the predetermined directory on the host system; and

discovers, by the script, the ancillary code by discovering the data volume container in the predetermined directory.

15. The system of claim 12 , wherein the discovery module discovers, by the application container, the pointer to the location of the data volume container on the host system by:

configuring a container platform that instantiates the application container on the host system with a script that scans for new ancillary data upon instantiation of the application container by the container platform; and

discovering, by the container platform executing the script while instantiating the application container, the location of the data volume container.

16. The system of claim 12 , wherein the modification module instantiates the application container with the pointer to the location of the data volume container that contains the ancillary code by restarting the application container.

17. The system of claim 12 , wherein:

the modification module restarts the application container with an additional pointer to a location of a new data volume container that contains additional ancillary code;

the discovery module:

discovers, by the application container, the location of the new data volume container; and

automatically rediscovers, by the application container, the location of the data volume container on the host system; and

the modification module modifies, by the application container, execution of the application executing in the application container with the ancillary code and the additional ancillary code.

18. The system of claim 12 , wherein the ancillary code comprises a plugin to the application executing in the application container.

19. The system of claim 12 , wherein the ancillary code comprises a patch to the application executing in the application container.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify an application container that is instantiated from a static application container image and that isolates a user space of an application that executes within the application container from other software on a host system while sharing a kernel space with the other software;

identify ancillary code that is designed to modify execution of the application executing in the application container;

package the ancillary code into a data volume container image to be deployed to the host system that hosts the application container;

discover, by the application container, a pointer to a location of a data volume container instantiated from the data volume container image on the host system; and

modify, by the application container, the execution of the application executing in the application container with the ancillary code, without modifying the static application container image, at least in part by instantiating the application container with the pointer to the location of the data volume container that contains the ancillary code; and

configure, at the creation of the static application container image, the static application container image with a script that scans a predetermined directory for new ancillary code upon the application container being instantiated from the static application container image.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069697/0238 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 18, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052189/0311 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2018
From: GOEL, VIKAS
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 044765/0808 →
Continuity (1)
Related Publication 20190235897A1 · Aug 1, 2019
Cited By (7)
US 12,236,103 US 12,321,449 US 12,346,683 US 12,386,556 US 12,393,415 US 12,650,827 US 12,699,575