IP Library Granted Patent US 12,430,156
Granted Patent B2
US 12,430,156 · App. 18/111,331 · Granted Sep 30, 2025

Managing containers across multiple operating systems

Inventors: Raymond Strode (Westford, MA); Alexander Larsson (Stockholm, SE); Matthias Clasen (Westford, MA); Debarshi Ray (Brno, CZ)
Assignee: Red Hat, Inc.
G06F9/4555G06F9/45512G06F9/45558G06F9/461H04L41/0806H04L41/0846G06F2009/45562G06F2009/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 12,430,156
App. No.
18/111,331
Granted
Sep 30, 2025
Kind
B2
Abstract

Aspects of the disclosure provide for mechanisms for managing containers across operating systems in a computer system. A method of the disclosure includes: causing a first container management agent in a first container to run a user interface in the first container, receiving a user request to create a copy of the first container, creating a second container in view of the first container, receiving, from the user interface running in the first container, a first command to switch from the first container to the second container, and responsive to receiving the first command to switch from the first container to the second container: configuring the second container in view of one or more configurations of the first container, causing a second container management agent in the second container to run the user interface in the second container, and causing execution of the first container to stop.

Claims (58)

1. A method comprising:

receiving, by a container management component, a request to run a first container;

in response to receiving the request to run the first container, running the first container and importing into the first container, by the container management component, a first container management agent operable to run a first user interface in the first container, the first container management agent being further operable to communicate with the container management component, wherein the first container comprises an installation of a first operating system;

receiving a user request to create a second container;

creating the second container in view of the first container, wherein the second container comprises an installation of a second operating system different than the first operating system;

receiving, by the container management component from the first container via the first user interface running in the first container, a first command to switch from the first container to the second container; and

responsive to receiving the first command to switch from the first container to the second container:

configuring the second container in view of one or more configurations of the first container, wherein configuring the second container comprises importing a shell history associated with the first container to the second container, wherein the shell history comprises a plurality of commands comprising the first command, each of the plurality of commands being previously received via the first user interface running in the first container;

running the second container and importing into the second container, by the container management component, a second container management agent operable to run a second user interface in the second container, the second container management agent being further operable to communicate with the container management component, wherein the plurality of commands previously received via the first user interface is presented within the second user interface; and

causing execution of the first container to stop.

2. The method of claim 1 , wherein the user request to create the second container comprises a request to fork the first container.

3. The method of claim 1 , wherein creating the second container in view of the first container comprises creating a copy of the first container comprising the installation of the second operating system.

4. The method of claim 1 , further comprising:

in response to receiving a user request to switch to the first container, switching from the second container to the first container.

5. The method of claim 1 , wherein configuring the second container further comprises:

attaching a current working directory related to the first container to the second container.

6. The method of claim 1 , wherein configuring the second container further comprises:

identifying a user identifier associated with the first container; and

associating the user identifier with the second container.

7. The method of claim 1 , wherein configuring the second container further comprises:

importing a home directory related to the first container to the second container.

8. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

receive, by a container management component, a request to run a first container;

in response to receiving the request to run the first container, run the first container and import into the first container, by the container management component, a first container management agent operable to run a first user interface in the first container, the first container management agent being further operable to communicate with the container management component, wherein the first container comprises an installation of a first operating system;

receive a user request to create a second container;

create the second container in view of the first container, wherein the second container comprises an installation of a second operating system different than the first operating system;

receive, by the container management component from the first container via the first user interface running in the first container, a first command to switch from the first container to the second container; and

responsive to receiving the first command to switch from the first container to the second container:

configure the second container in view of one or more configurations of the first container, wherein, to configure the second container, the processor device is to import a shell history associated with the first container to the second container, wherein the shell history comprises a plurality of commands comprising the first command, each of the plurality of commands being previously received via the first user interface running in the first container;

run the second container and import into the second container, by the container management component, a second container management agent operable to run a second user interface in the second container, the second container management agent being further operable to communicate with the container management component, wherein the plurality of commands previously received via the first user interface is presented within second the user interface; and

cause execution of the first container to stop.

9. The system of claim 8 , wherein the user request to create the second container comprises a request to fork the first container.

10. The system of claim 8 , wherein to create the second container in view of the first container, the processing device is to create a copy of the first container comprising the installation of the second operating system.

11. The system of claim 8 , wherein the processing device is further to:

in response to receiving a user request to switch to the first container, switch from the second container to the first container.

12. The system of claim 8 , wherein to configure the second container, the processing device is further to:

attach a current working directory related to the first container to the second container.

13. The system of claim 8 , wherein to configure the second container, the processing device is further to:

identify a user identifier associated with the first container; and

associate the user identifier with the second container.

14. The system of claim 8 , wherein to configure the second container, the processing device is further to:

import a home directory related to the first container to the second container.

15. A non-transitory machine-readable storage medium including instructions that, when accessed by a processing device, cause the processing device to:

receive, by a container management component, a request to run a first container;

in response to receiving the request to run the first container, run the first container and import into the first container, by the container management component, a first container management agent operable to run a first user interface in the first container, the first container management agent being further operable to communicate with the container management component, wherein the first container comprises an installation of a first operating system;

receive a user request to create a second container;

create the second container in view of the first container, wherein the second container comprises an installation of a second operating system different than the first operating system;

receive, by the container management component from the first container via the first user interface running in the first container, a first command to switch from the first container to the second container; and

responsive to receiving the first command to switch from the first container to the second container:

configure the second container in view of one or more configurations of the first container, wherein, to configure the second container, the instructions further cause the processor device to import a shell history associated with the first container to the second container, wherein the shell history comprises a plurality of commands comprising the first command, each of the plurality of commands being previously received via the first user interface running in the first container;

run the second container and import into the second container, by the container management component, a second container management agent operable to run a second user interface in the second container, the second container management agent being further operable to communicate with the container management component, wherein the plurality of commands previously received via the first user interface is presented within second the user interface; and

cause execution of the first container to stop.

16. The non-transitory machine-readable storage medium of claim 15 , wherein the user request to create the second container comprises a request to fork the first container.

17. The non-transitory machine-readable storage medium of claim 15 , wherein to create the second container in view of the first container, the instructions cause the processing device to create a copy of the first container comprising the installation of the second operating system.

18. The non-transitory machine-readable storage medium of claim 15 , wherein the instructions further cause the processing device to:

in response to receiving a user request to switch to the first container, switch from the second container to the first container.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2024
From: STRODE, RAYMOND; LARSSON, ALEXANDER; CLASEN, MATTHIAS; RAY, DEBARSHI
To: RED HAT, INC.
Reel/Frame 066071/0593 →
Continuity (2)
Continuation 16281984 · Feb 21, 2019
Related Publication 20230205561A1 · Jun 29, 2023
References Cited (37)
US 10606646B1 · Christensen · 2020 [cited by applicant]
US 10838833B1 · Jibaja et al. · 2020 [cited by applicant]
US 20130124807A1 · Nielsen et al. · 2013 [cited by applicant]
US 20130298183A1 · McGrath et al. · 2013 [cited by applicant]
US 20140075432A1 · McGrath et al. · 2014 [cited by applicant]
US 20150142878A1 · Hebert et al. · 2015 [cited by applicant]
US 20160098285A1 · Davis et al. · 2016 [cited by applicant]
US 20160274928A1 · Linton · 2016 [cited by examiner]
US 20160330073A1 · Li · 2016 [cited by applicant]
US 20160359955A1 · Gill · 2016 [cited by examiner]
US 20170093922A1 · Duan · 2017 [cited by examiner]
US 20170093923A1 · Duan · 2017 [cited by applicant]
US 20170322824A1 · Reuther et al. · 2017 [cited by applicant]
US 20170371693A1 · Corrie et al. · 2017 [cited by applicant]
US 20180018116A1 · Hallisey · 2018 [cited by examiner]
US 20180027009A1 · Santos et al. · 2018 [cited by applicant]
US 20180054314A1 · Edwards · 2018 [cited by applicant]
US 20180121189A1 · Philippov et al. · 2018 [cited by applicant]
US 20180137093A1 · Goldfarb et al. · 2018 [cited by applicant]
US 20180157517A1 · Dong · 2018 [cited by examiner]
US 20180213036A1 · Vasetsky · 2018 [cited by examiner]
US 20180295059A1 · Gamage · 2018 [cited by applicant]
US 20180309747A1 · Sweet et al. · 2018 [cited by applicant]
US 20180357086A1 · Kinsella · 2018 [cited by examiner]
US 20190095253A1 · Curtis et al. · 2019 [cited by applicant]
US 20190235900A1 · Singh et al. · 2019 [cited by applicant]
US 20190243628A1 · Goldmann et al. · 2019 [cited by applicant]
US 20190354389A1 · Du et al. · 2019 [cited by applicant]
US 20200183716A1 · Beddus · 2020 [cited by examiner]
US 20200319912A1 · Vully · 2020 [cited by examiner]
RU 2550559C2 · 2015 [cited by applicant]
Apache Software Foundation: “Apache Mesos,” Containerizier Internals, Dec. 18, 2015, pp. 1-4. [cited by applicant]
Aspernas A., et al., “Container Hosts as Virtual Machines—A Performance Study,” Virginia Tech, 2016, 69 Pages. [cited by applicant]
Docker Incorporated “Use Bind Mounts,” Docket Documentation, Accessed on Nov. 1, 2018, 9 Pages. [cited by applicant]
Dumpleton G., “Jupyter on OpenShift Part 6: Running as an Assigned User ID,” Openshift, Apr. 21, 2017, 13 Pages. [cited by applicant]
Martin, A., et al., “Docker Ecosystem—Vulnerability Analysis,” Computer Commuications, Jun. 1, 2018, vol. 122, pp. 30-43. [cited by applicant]
Sweeney T., “Buildah—Build your Containers From The Ground Up!,” Project Atomic, Jun. 22, 2017, 7 Pages. [cited by applicant]