Effective management of virtual containers in a desktop environment
View Patent ↗A method and system are provided for identifying installed software components in a container running in a virtual execution environment. The container is created by instantiating image data. The method includes determining a respective identifier for each of individual layers of a layered structure of the image data. The method further includes retrieving from a repository storage arrangement, information identifying at least one of the installed software components in the container, based on the respective identifier for at least one of the individual layers.
1. A method for identifying installed software components in a container running in a virtual execution environment, wherein the container is created by instantiating image data, the method comprising:
determining a respective identifier for each of individual layers of a layered structure of the image data;
retrieving from a repository storage arrangement storing information for non-container-based software and container-based software, the information for the container-based software identifying at least one of the installed software components in the container based on the respective identifier for at least one of the individual layers;
forming, from the information stored in the repository storage arrangement, a displayable data structure allowing row filtering for software management and at least specifying as a respective row in the displayable data structure, for each of the installed software components, (i) a type as one of the non-container-based software or the container-based software, (ii) a virtual machine and an operating system corresponding thereto, and (iii) an operating status of started or stopped; and
displaying, on a display device, the displayable data structure.
2. The method of claim 1 , further comprising:
determining an existence, in the repository storage arrangement, of information about the installed software components, using the respective identifier for each of the individual layers;
inspecting the container to generate the information about the installed software components when the information is absent from the repository storage arrangement; and
storing the generated information about the installed software components in the repository storage arrangement.
3. The method of claim 2 , wherein inspecting the container includes analyzing metadata associated with the image data related to the container.
4. The method of claim 2 , wherein inspecting the container includes analyzing the image data in a file system tree.
5. The method of claim 1 , further comprising ascertaining whether the container shares any of the individual layers with another container.
6. The method of claim 5 , further comprising discovering information about the other container responsive to a result of said ascertaining step.
7. The method of claim 6 , wherein the information about the other container comprises installed software components in the other container.
8. The method of claim 1 , wherein the at least one installed software component in the container is selected from the group consisting of an operating system and an application.
9. The method of claim 8 , wherein the operating system is different than a host operating system.
10. The method of claim 1 , wherein the method is performed for each of a plurality of containers in the virtual execution environment.
11. A computer program product for identifying installed software components in a container running in a virtual execution environment, wherein the container is created by instantiating image data, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method comprising:
determining a respective identifier for each of individual layers of a layered structure of the image data;
retrieving from a repository storage arrangement storing information for non-container-based software and container-based software, the information for the container-based software identifying at least one of the installed software components in the container, based on the respective identifier for at least one of the individual layers;
forming, from the information stored in the repository storage arrangement, a displayable data structure allowing row filtering for software management and at least specifying as a respective row in the displayable data structure, for each of the installed software components, (i) a type as one of the non-container-based software or the container-based software, (ii) a virtual machine and an operating system corresponding thereto, and (iii) an operating status of started or stopped; and
displaying, on a display device of the computer, the displayable data structure.
12. The computer program product of claim 11 , wherein the method further comprises:
determining an existence, in the repository storage arrangement, of information about the installed software components, using the respective identifier for each of the individual layers;
inspecting the container to generate the information about the installed software components when the information is absent from the repository storage arrangement; and
storing the generated information about the installed software components in the repository storage arrangement.
13. The computer program product of claim 12 , wherein inspecting the container includes analyzing metadata associated with the image data related to the container.
14. The computer program product of claim 12 , wherein inspecting the container includes analyzing the image data in a file system tree.
15. The computer program product of claim 11 , wherein the method further comprises ascertaining whether the container shares any of the individual layers with another container.
16. The computer program product of claim 15 , wherein the method further comprises discovering information about the other container responsive to a result of said ascertaining step.
17. The computer program product of claim 16 , wherein the information about the other container comprises installed software components in the other container.
18. A system for identifying installed software components in a container running in a virtual execution environment, wherein the container is created by instantiating image data, the system comprising:
a processor, configured to:
determine a respective identifier for each of individual layers of a layered structure of the image data;
retrieve from a repository storage arrangement storing information for non-container-based software and container-based software, the information for the container-based software identifying at least one of the installed software components in the container, based on the respective identifier for at least one of the individual layers; and
form, from the information stored in the repository storage arrangement, a displayable data structure allowing row filtering for software management and at least specifying as a respective row in the displayable data structure, for each of the installed software components, (i) a type as one of the non-container-based software or the container-based software, (ii) a virtual machine and an operating system corresponding thereto, and (iii) an operating status of started or stopped; and
a display device configured to display the displayable data structure.
19. The system of claim 18 , wherein the processor is further configured to:
determine an existence, in the repository storage arrangement, of information about the installed software components, using the respective identifier for each of the individual layers;
inspect the container to generate the information about the installed software components when the information is absent from the repository storage arrangement; and
store the generated information about the installed software components in the repository storage arrangement.
20. The system of claim 18 , wherein the processor is further configured to:
ascertain whether the container shares any of the individual layers with another container; and
discover information about the other container responsive to a result of said ascertaining step, wherein the information about the other container comprises installed software components in the other container.