WO2020036482A1 - System and method for identifying container image and dynamically creating the container image - Google Patents

System and method for identifying container image and dynamically creating the container image Download PDF

Info

Publication number
WO2020036482A1
WO2020036482A1 PCT/MY2019/050042 MY2019050042W WO2020036482A1 WO 2020036482 A1 WO2020036482 A1 WO 2020036482A1 MY 2019050042 W MY2019050042 W MY 2019050042W WO 2020036482 A1 WO2020036482 A1 WO 2020036482A1
Authority
WO
WIPO (PCT)
Prior art keywords
container image
image
user preferences
module
container
Prior art date
Application number
PCT/MY2019/050042
Other languages
French (fr)
Inventor
Rajendar KANDAN
Bukhary Ikhwan ISMAIL
Ehsan MOSTAJERAN GOORTANI
Mohd Nizam MOHD MYDIN
Mohammad Fairus Khalid
Original Assignee
Mimos Berhad
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mimos Berhad filed Critical Mimos Berhad
Publication of WO2020036482A1 publication Critical patent/WO2020036482A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Definitions

  • the present invention relates to creating container image, in particular to a system and method for concerning a container image and dynamically creating the container image based on user preferences.
  • a software container automates and simplifies deployment of a software application over a cloud-computing platform or in a large enterprise network
  • a software container may comprise a standalone computing environment in which is installed one or more configured computer applications, infrastructure, and associated software. Further, the software container provides a layer of abstraction and virtualization for a running software application.
  • a Docker® image is built up from a series of layers. Each layer of the Docker® image represents an instruction in the Dockerfile of the image.
  • US patent number 9,367,305 BI filed by Yash Kumar et al. discloses a system for automatically generating containers and a relational communications graph for a source application comprises a processor to receive the source application.
  • the source application includes a source element to determine a dependency component from the source element and generate a container configuration which includes the dependency component. Further, the processor executes the container configuration so that the operating system loads the dependency component within a container running under the operating system.
  • the container configuration system disclosed in the Yash Kumar et al. reference is not able to expedite the process of building new container images by utilizing the existing container images.
  • Lopez et al. discloses a system for generating dynamic images.
  • the system includes a processor to detect a request to generate a container image based on a policy file and identify a host image from a host operating system.
  • the processor further generates the container image based on the host image and the policy file.
  • the policy file provides the first set of files to be copied from the host image to the container image. Further, a set of reparse points are created in the container image.
  • the system includes a processor to create an image file by processing each instruction of an image-container file in sequential order.
  • the processor at deployment time determines that which layers to deploy as a function of a state of a condition using a method of parallel layers. Further, the parallel layers share a common stack level in the image file.
  • the image file deploys a container, only one parallel layer is selected for each level so that the deployed instance of the container includes one layer per level.
  • the system disclosed in the Badekila Ganesh Prashanth Bhat et al. reference does not compare the user requirements and preferences against the existing container images and also not able to expedite the process of building the new container images by utilizing the existing container images.
  • the present invention mainly solves the technical problems existing in the prior art.
  • the present invention provides a system and method for identifying a container image and dynamically creating the container image based on a plurality of user preferences.
  • An aspect of the present disclosure relates to a method for identifying a container image and dynamically creating the container image based on a plurality of user preferences. The method includes a step of obtaining information about the container image from a plurality of sources to store in a database through an image information collector module.
  • the method includes a step of collecting a plurality of user preferences for analysis and prioritizing the user preferences through a preference analyzer module.
  • the preference analyzer module further identifies the container image and initiates a negotiation on the user preferences.
  • the method includes a step of preparing a virtual environment for creating the container image through an image initializer module.
  • the image initializer module initiates a downloading operation to download a plurality of software and further transfer the plurality of software to a plurality of respective resources for creating the container image.
  • the method then includes a step of creating the container image based on the user preferences through an image builder module.
  • the image builder module further scans the created container image to provide technical information about the container image.
  • the step of collecting user preferences for analysis and prioritizing the user preferences further comprises a step of verifying the collected user preferences against a plurality of rules to identify one or more invalid user preference.
  • the identified invalid user preference displayed over a display module.
  • the plurality of user preferences are selected from at least one of an operating system, version of a software, size of the software, recommended release of the software, a plurality of grade level of the software, and a combination thereof.
  • the obtaining information about the container image comprises operating system data, application data, type of build data, star rating data, number of download data, and vulnerable data.
  • the step of prioritizing the user preferences further comprises a step of generating a search identification number to check historical preferences of a user.
  • the step of identifying the container image and initiating a negotiation on the user preferences further comprises a step of identifying a suitable index of the container image based on the collected user preferences. Then this step includes the step of negotiating on the user preferences to select an appropriate container image, and further acknowledges and provides information about the container image based on the negotiation on the user preferences.
  • the step of preparing the virtual environment for creating the container image further comprises a step of preparing a plurality of build sources and storing a template identification number in the database.
  • An aspect of the present disclosure relates to a device in a network.
  • the device includes a non-transitory storage device having embodied therein one or more routines operable to identify a container image and dynamically creating the container image based on a plurality of user preferences.
  • the one or more routines include an image information collector module, a preference analyzer module, an image initializer module, and an image builder module.
  • the image information collector module is configured to obtain information -about the container image from a plurality of sources to store in a database.
  • the preference analyzer module is configured to collect a plurality of user preferences for analysis and prioritizing the user preferences.
  • the preference analyzer module further identifies the container image and initiates a negotiation on the user preferences.
  • the image initializer module is configured to prepare a virtual environment for creating the container image.
  • the image initializer module initiates a downloading operation to download a plurality of software and further transfer the plurality of software to a plurality of respective resources for creating the container image.
  • the image builder module is configured to create the container image based on the user preferences.
  • the image builder module further scans the created container image to provide technical information about the container image.
  • An aspect of the present disclosure relates to a system to identify a container image and dynamically create the container image based on a plurality of user preferences.
  • the system includes a processor and a memory.
  • the memory stores machine-readable instructions that when executed by the processor cause the processor to obtain information about the container image from a plurality of sources to store in a database througli an image information collector module.
  • the processor is configured to collect a plurality of user preferences for analysis and prioritizing the user preferences through a preference analyzer module.
  • the preference analyzer module further identifies the container image and initiates a negotiation on the user preferences.
  • the processor is then configured to prepare a virtual environment for creating the container image through an image initializer module.
  • the image initializer module initiates a downloading operation to download a plurality of software and further transfer the plurality of software to a plurality of respective resources for creating the container image.
  • the processor is further configured to create the container image based on the user preferences through an image builder module.
  • the image builder module further scans the created container image to provide technical information about the container image.
  • one advantage of the present invention is that it enables a user to view the technical infonnation about the related container images.
  • one advantage of the present invention is that it enables the user to select the best and appropriate suitable container image for creation based on their specific preferences.
  • one advantage of the present invention is that it enables the user dynamically create the container images.
  • FIG. 1 illustrates a network implementation of the container image system and method to identify a container image and dynamically create the container image based on a plurality of user preferences, in accordance with an embodiment of the present subject matter.
  • FIG. 2 illustrates the container image system to identify a container image and dynamically create the container image based on a plurality of user preferences, in accordance with an embodiment of the present subject matter.
  • FIG. 3 illustrates the architecture of the container image system, in accordance with an embodiment of the present subject matter.
  • FIG. 4 illustrates a flowchart of the method for identifying a container image and dynamically creating the container image based on a plurality of user preferences, in accordance with at least one embodiment.
  • FIG. 5 illustrates a flowchart of the operations involves in verifying the collected user preferences against a plurality of rules to identify one or more invalid user preference through a preference analyzer module, in accordance with at least one embodiment.
  • FIG. 6 illustrates a flowchart of the operations involves in prioritizing the user preferences through the preference analyzer module, in accordance with at least one embodiment.
  • FIG. 7 illustrates a flowchart of the operations involves in identifying the container image and initiating a negotiation on the user preferences through a preference analyzer module, in accordance with at least one embodiment.
  • FIG, 8 illustrates a flowchart of the operations involves in preparing a virtual environment for creating the container image through an image initializer module, in accordance with at least one embodiment.
  • FIG.9 illustrates a flowchart of the operations involves in creating the container image based on the user preferences through an image builder module, in accordance with at least one embodiment.
  • Systems and methods are disclosed for identifying a container image and dynamically creating the container image based on a plurality of user preferences.
  • Embodiments of the present disclosure include various steps, which will be described below. The steps may be performed by hardware components or may be embodied in machine- executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the steps. Alternatively, steps may be performed by a combination of hardware, software, firmware, and/or by human operators.
  • Embodiments of the present disclosure may be provided as a computer program product, which may include a machine-readable storage medium tangibly embodying thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process.
  • the machine-readable medium may include, but is not limited to, fixed (hard) drives, magnetic tape, floppy diskettes, optical disks, compact disc read-only memories (CD-ROMs), and magneto-optical disks, semiconductor memories, such as ROMs, PROMs, random access memories (RAMs), programmable read-only memories (PROMs), erasable PROMs (EPROMs), electrically erasable PROMs (EEPROMs), flash memory, magnetic or optical cards, or other type of media/machine-readable medium suitable for storing electronic instructions (e.g., computer programming code, such as software or firmware).
  • Various methods described herein may be practiced by combining one or more machine-readable storage media containing the code according to the present disclosure with appropriate standard computer hardware to execute the code contained therein.
  • An apparatus for practicing various embodiments of the present disclosure may involve one or more computers (or one or more processors within a single computer) and storage systems containing or having network access to computer program(s) coded in accordance with various methods described herein, and the method steps of the disclosure could be accomplished by modules, routines, subroutines, or subparts of a computer program product.
  • the present invention discloses a system and method whereby the container images are available online for the users.
  • the user are able find the corresponding meta-data information which explains the container image or the technical information such as bugs, vulnerabilities about each layer of the container image is readily accessible thereby.
  • the system and method is adapted to generate the container image based on the policy file and and it offers mechanisms to dynamically build the desired container image based on the user preferences.
  • machine-readable storage medium includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other mediums capable of storing, containing, or canying instruction(s) and/or data.
  • a machine-readable medium may include a non-transitory medium in which data can be stored, and that does not include carrier waves and/or transitory electronic signals propagating wirelessly or over wired connections. Examples of a non- transitory medium may include but are not limited to, a magnetic disk or tape, optical storage media such as compact disk (CD) or versatile digital disk (DVD), flash memory, memory or memory devices.
  • FIG. 1 illustrates a network implementation 100 an container image system 102 and method to identify a container image and dynamically create the container image based on a plurality of user preferences, in accordance with an embodiment of the present invention.
  • the container image system 102 is implemented on a server, it may be understood that the container image system 102 may also be implemented in a variety of computing systems, such as a laptop computer, a desktop computer, a notebook, a workstation, a mainframe computer, a server, a network server, and the like.
  • the container image system 102 may be accessed by multiple users through one or more computing devices 104-1, 104-2...104-N, collectively referred to as computing unit 104 hereinafter, or applications residing on the computing unit 104.
  • Examples of the computing unit 104 may include but are not limited to, a portable computer, a personal digital assistant, a handheld or mobile device, smart devices, and a workstation.
  • the computing units 104 are communicatively acccessible to the container image system 102 through a network 106.
  • the network 106 may be a wireless network, a wired network or a combination thereof.
  • the network 106 can be implemented as one of the different lypes of networks, such as an intranet, local area network (LAN), wide area network (WAN), the internet, and the like.
  • the network 106 may either be a dedicated network or a shared network.
  • the shared network represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), and the like, to communicate with one another.
  • the network 106 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, and the like.
  • FIG. 2 illustrates the container image system 102 of FIG. 1 to identify a container image and dynamically create the container image based on a plurality of user preferences, in accordance with an embodiment of the present invention.
  • the system 102 may include at least one processor 202, an input/output (I/O) interface 204, and a memory 206.
  • the processor 202 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the at least one processor 202 is configured to fetch and execute computer-readable instructions stored in the memory 206.
  • the I/O interface 204 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like. The I/O interface 204 may allow the system 102 to interact with a user directly or through the computing unit 104.
  • the I/O interlace 204 may enable the system 102 to communicate with other computing devices, such as web servers and external data savers (not shown).
  • the I/O interface 204 can facilitate multiple communications within a wide variety of networks and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite.
  • the I/O interface 204 may include one or more ports for connecting a number of devices to one another or to another server.
  • the memory 206 may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read-only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
  • volatile memory such as static random access memory (SRAM) and dynamic random access memory (DRAM)
  • non-volatile memory such as read-only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes.
  • ROM read-only memory
  • erasable programmable ROM erasable programmable ROM
  • the modules 208 include routines, programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types.
  • the modules 208 may include an image information collector module 212, a preference analyzer module 214, an image initializer module 216, an image builder module 218, and other module 222.
  • the other modules 222 may include programs or coded instructions that supplement applications and functions of the system 102.
  • the data 210 serves as a repository for storing data processed, received, and generated by one or more of the modules 208.
  • the data 210 may also include an image information collector data 223, a preference analyzer data 224, an image initializer data 225, an image builder data 226 and other data 234.
  • the other data 234 may include data generated as a result of the execution of one or more modules in the other module 222.
  • the image information collector module 212 is configured to obtain information about the container image from a plurality of sources to store in a database.
  • the plurality of sources include but are not no limited to https://hub.docker.com/explore/, https://bitnami.eom/containers#turnkey-containers, or any platform utilized by developers to build, package, maintain and run distributed applications.
  • the preference analyzer module 214 is configured to collect a plurality of user preferences for analysis and prioritizing the user preferences. For example, the user prefers to use a specific version of the operating system (OS) such as“Ubuntu 16.04”, or “Ubuntu 18,04". Similarly, the user prefers to use a specific version of the application. The preference analyzer module 214 accordingly collects the preferred OS version and application version for analysis. In an embodiment, the preference analyzer module 214 further generates a search identification number to check historical preferences of a user.
  • OS operating system
  • the plurality of user preferences are selected from at least one of an operating system, version of a software, size of the software, recommended release of the software, a plurality of grade level of the software, and a combination thereof.
  • the operation of the software versions depends on the version of the operating system in use.
  • the top priority for the preference analyzer module 214 is to select the version of the operating system to find the appropriate software version.
  • the default Docker version 1.11 is available in Ubuntu OS 14.04 (trusty) and a default Docker version 17.05 is available in Ubuntu OS 16.04.
  • the obtained information about the container image comprises operating system data, application data, type of build data, star rating data, number of download data, and vulnerable data.
  • the preference analyzer module 214 further identifies the container image and initiates a negotiation on the user preferences.
  • the preference analyzer module 214 further verifies the collected user preferences against a plurality of rules to identify one or more invalid user preference.
  • predefined rules eliminate the failure condition by having a list of software versions available to that respective OS.
  • the present invention utilizes a knowledge repository for references to identify the software list and available versions. The identified invalid user preferences are displayed over a display module.
  • the preference analyzer module 214 further identifies a suitable index of the container image based on the collected user preferences; negotiates on the user preferences to select an appropriate container image, and acknowledges and provides information about the container image based on the negotiation on the user preferences.
  • the image initializer module 216 is configured to prepare a virtual environment for creating the container image.
  • the image initializer module 216 initiates a downloading operation to download a plurality of software and further transfer the plurality of software to a plurality of respective resources.
  • the image initializer module 216 enables a user to download the software by using the command line. For example, docker pull Ubuntu: 16.04 ⁇ ImageName>, wget ⁇ url> etc.
  • a Graphical User Interface (GUI) may be adapted.
  • the resources are the servers comprises adequate memory and storage space for managing the creation of the container images. Based on the requirement; the resources are identified in run-time for building the container images.
  • the image initializer module 216 manages the download of the container image and the pre-requisite.
  • the image builder module 218 is configured to create the container image based on the user preferences.
  • the image builder ' module 218 further scans the created container image to provide technical information about the container image.
  • the image builder module 218 prepares a plurality of build sources and stores a template identification number in the database. Table 1 below exemplifies some technical information of the container image built.
  • the build sources are used when the container image is required to build with the user-defined files (e.g., scripts, and files).
  • Examples of the build include but are not limited to command: docker builds -t ubuntu: user — f Dockerfile /imagesource-directory. This exemplary command builds the images with all the files listed in the image source directory which contains all the files uploaded by the user.
  • the template identification number is auto-generated and labeled. For example, "newbuild 10”: Description: TomcatS+ubuntu 16.04, which can be referenced, if a similar request made from the other user to build the container images in less time.
  • FIG. 3 illustrates the architecture 300 of the system in accordance with an embodiment of the present subject matter.
  • the image information collector 304 obtains the information from the sources and update in knowledge database 305. Thus all detailed information about the images are available in the knowledge database 305. Table 1 illustrates the obtained container image information.
  • the preference analyzer 306 collects the user preferences 302 and negotiates with the desired requirement. The user inputs are verified and process to the image initializer 308 for further processing. Then the invalid inputs are identified and displayed to the user.
  • the image initializer 308 prepares the environment for building the container image. All necessary software are downloaded and moved or copied to the respective resource for building.
  • the image builder 310 creates the desired image based on the user preferences. Further, the image builder 310 scans the built image and provide the summary of the image details.
  • the container image system and method collect the user preferences and negotiate for proper selection of the image. Further, the container image system and method prepare a suitable environment for building the image based on the comparative analysis of the existing image and build a new image based on the user preferences.
  • FIG. 4 illustrates a flowchart 400 of the method for identifying a container image and dynamically creating the container image based on a plurality of user preferences, in accordance with at least one embodiment.
  • the steps of FIG. 4 are explained in conjunction with FIGs. 5-9.
  • the method initiates with a step 402 of obtaining information about the container image from a plurality of sources to store in a database through an image information collector module 212.
  • the obtained information pertaining to the container image comprises operating system data, application data, type of build data, star rating data, number of download data, and vulnerable data.
  • the method includes a step 404 of collecting a plurality of user preferences for analysis and prioritizing the user preferences through a preference analyzer module 214.
  • the preference analyzer module 214 further identifies the container image and initiates a negotiation on the user preferences.
  • the plurality of user preferences are selected from at least one of an operating system, version of a software, size of the software, recommended release of the software, a plurality of grade level of the software, and/or a combination thereof.
  • step 406 a virtual environment is created for creating the container image.
  • the virtual environment is created through the image initializer module 216.
  • a container image is created based on the user preference.
  • the container image is created by the image builder module 218. More detailed operations of steps 406 and 408 will be provided later below along with FIG.8 and 9 respectively.
  • FIG. 5 illustrates a flowchart 500 of the operations involve in verifying the collected user preferences against a plurality of rules to identify one or more invalid user preference through a preference analyzer module, in accordance with at least one embodiment of the present invention.
  • the step 404 of collecting user preferences for analysis and prioritizing the user preferences further comprises a step 504 of verifying the collected user preferences against a plurality of rales such as the size of the software applications and version conflicts between the various software applications to identify one or more invalid user preference.
  • the verification of the initial user preferences or user’s input fails then the invalid user preference is displayed 502 over a display module.
  • the collected user inputs are verified to be valid, the user is prompt for inputs for customization 506.
  • FIG. 6 illustrates a flowchart 600 of the operations involve in prioritizing the user preferences through the preference analyzer module 214, in accordance with one embodiment of the present invention.
  • the step of prioritizing the user preferences comprises a step 602 of generating a search identification number to check 604 historical preferences of a user. If the historical preferences of the user are present, the system identifies 606 the matching search identification number corresponding to the generated search identification number. In case the historical preferences of the user are not present, the system initiates order 608 for the historical preferences of the user. As soon as the system receives the historical preferences of the user, the system updates 610 the search identification number.
  • FIG. 7 illustrates a flowchart 700 of the operations involve in identifying the container image and initiating a negotiation on the user preferences through a preference analyzer module 214, in accordance with one embodiment of the present invention.
  • the step of identifying the container image and initiating a negotiation on the user preferences further comprises a step 702 of identifying a suitable index of the container image based on the collected user preferences.
  • the method includes the step 704 of negotiating on the user preferences to select an appropriate container image.
  • the method includes the step 706 of acknowledging and providing information about the container image based on the negotiation on the user preferences.
  • FIG, 8 illustrates a flowchart 800 of the operations involve in preparing a virtual environment for creating the container image through an image initializer module 216, in accordance with one embodiment of the present invention.
  • the method includes a step 406 of preparing a virtual environment for creating the container image through an image initializer module 216.
  • the image initializer module 216 initiates a downloading operation to download a plurality of software and further transfer or copy 804 the plurality of software to a plurality of respective resources for creating the container image. Then the method initiates order 806 about the dependencies of the software.
  • the step 406 of preparing the virtual environment for creating the container image further comprises a step 808 of preparing a plurality of build sources, and a step 810 of updating or storing a template identification number in the database.
  • FIG. 9 illustrates a flowchart 900 of the operations involve in creating the container image based on the user preferences through an image builder module 218, in accordance with one embodiment of the present invention.
  • the method includes a step 408 of creating the container image based on the user preferences through an image builder module 218.
  • the step 408 of creating the container image further comprises a step 902 of initiating a process to create the container image.
  • the image builder module further scans 904 the created container image to display 906 technical information about the container image.
  • the container image system and method provide an efficient, simpler and more elegant framework for identifying a container image and dynamically creating the container image based on a plurality of user preferences. Further, the container image system and method provide meta-data information to explain the container image. Additionally, the container image system and method provide the technical information such as bugs, vulnerabilities, etc. about each layer of the container image. [0067] While embodiments of the present disclosure have been illustrated and described, it will be clear that the disclosure is not limited to these embodiments only.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Disclosed is a system and method for identifying a container image and dynamically creating the container image based on user preferences. The method includes a step of obtaining information about the container image from a plurality of sources to store in a database through an image information collector module (212). Then the method collects user preferences for analysis and prioritizing the user preferences through a preference analyzer module (214). The preference analyzer module (214) identifies the container image and initiates a negotiation on the user preferences. Further, the method prepares a virtual environment for creating the container image through an image initializer module (216). The image initializer module (216) initiates a downloading operation to download a plurality of software and further transfer the software to respective resources for creating the container image. Furthermore, the method includes the step of creating the container image based on the user preferences through an image builder module (218). The image builder module (218) further scans the created container image to provide technical information about the container image.

Description

SYSTEM AND METHOD FOR IDENTIFYING CONTAINER IMAGE AND DYNAMICALLY CREATING THE CONTAINER IMAGE
[0001] The present invention relates to creating container image, in particular to a system and method for concerning a container image and dynamically creating the container image based on user preferences.
BACKGROUND
[0002] Typically, a software container automates and simplifies deployment of a software application over a cloud-computing platform or in a large enterprise network, A software container may comprise a standalone computing environment in which is installed one or more configured computer applications, infrastructure, and associated software. Further, the software container provides a layer of abstraction and virtualization for a running software application. A Docker® image is built up from a series of layers. Each layer of the Docker® image represents an instruction in the Dockerfile of the image.
[0003] US patent number 9,367,305 BI filed by Yash Kumar et al. discloses a system for automatically generating containers and a relational communications graph for a source application comprises a processor to receive the source application. The source application includes a source element to determine a dependency component from the source element and generate a container configuration which includes the dependency component. Further, the processor executes the container configuration so that the operating system loads the dependency component within a container running under the operating system. However, the container configuration system disclosed in the Yash Kumar et al. reference is not able to expedite the process of building new container images by utilizing the existing container images.
[0004] US patent publication number US 2017/030031 1 A1 filed by Daniel Vasquez
Lopez et al. discloses a system for generating dynamic images. The system includes a processor to detect a request to generate a container image based on a policy file and identify a host image from a host operating system. The processor further generates the container image based on the host image and the policy file. The policy file provides the first set of files to be copied from the host image to the container image. Further, a set of reparse points are created in the container image.
[0005] Another system to deploy dynamic container with parallel layers is disclosed in the US patent publication number US 2017/0277524 A1 filed by Badekila Ganesh
Prashanth Bhat et al. The system includes a processor to create an image file by processing each instruction of an image-container file in sequential order. The processor at deployment time determines that which layers to deploy as a function of a state of a condition using a method of parallel layers. Further, the parallel layers share a common stack level in the image file. When the image file deploys a container, only one parallel layer is selected for each level so that the deployed instance of the container includes one layer per level. However, the system disclosed in the Badekila Ganesh Prashanth Bhat et al. reference does not compare the user requirements and preferences against the existing container images and also not able to expedite the process of building the new container images by utilizing the existing container images.
[0006] Accordingly, it is an objective of the present invention for a system and method for addressing the aforesaid problems and setbacks.
SUMMARY
[0007] There is a need for an efficient and effective system and method for identifying a container image and dynamically creating the container image based on a plurality of user preferences. Further, there is a need for a system and method that provides meta-data information to explain the container image. Furthermore, there is a need for a system and method to provide the technical information such as bugs, vulnerabilities, etc. about each layer of the container image.
[0008] The present invention mainly solves the technical problems existing in the prior art. In response to these problems, the present invention provides a system and method for identifying a container image and dynamically creating the container image based on a plurality of user preferences. [0009] An aspect of the present disclosure relates to a method for identifying a container image and dynamically creating the container image based on a plurality of user preferences. The method includes a step of obtaining information about the container image from a plurality of sources to store in a database through an image information collector module.
[0010] Then the method includes a step of collecting a plurality of user preferences for analysis and prioritizing the user preferences through a preference analyzer module. The preference analyzer module further identifies the container image and initiates a negotiation on the user preferences. Further, the method includes a step of preparing a virtual environment for creating the container image through an image initializer module. The image initializer module initiates a downloading operation to download a plurality of software and further transfer the plurality of software to a plurality of respective resources for creating the container image. The method then includes a step of creating the container image based on the user preferences through an image builder module. The image builder module further scans the created container image to provide technical information about the container image.
[0011] In an aspect, the step of collecting user preferences for analysis and prioritizing the user preferences further comprises a step of verifying the collected user preferences against a plurality of rules to identify one or more invalid user preference. [0012] In an aspect, the identified invalid user preference displayed over a display module.
[0013] In an aspect, the plurality of user preferences are selected from at least one of an operating system, version of a software, size of the software, recommended release of the software, a plurality of grade level of the software, and a combination thereof. [0014] In an aspect, the obtaining information about the container image comprises operating system data, application data, type of build data, star rating data, number of download data, and vulnerable data.
[0015] In an aspect, the step of prioritizing the user preferences further comprises a step of generating a search identification number to check historical preferences of a user. [0016] In an aspect, the step of identifying the container image and initiating a negotiation on the user preferences further comprises a step of identifying a suitable index of the container image based on the collected user preferences. Then this step includes the step of negotiating on the user preferences to select an appropriate container image, and further acknowledges and provides information about the container image based on the negotiation on the user preferences.
[0017] In an aspect, the step of preparing the virtual environment for creating the container image further comprises a step of preparing a plurality of build sources and storing a template identification number in the database. [0018] An aspect of the present disclosure relates to a device in a network. The device includes a non-transitory storage device having embodied therein one or more routines operable to identify a container image and dynamically creating the container image based on a plurality of user preferences. The one or more routines include an image information collector module, a preference analyzer module, an image initializer module, and an image builder module.
[0019] The image information collector module is configured to obtain information -about the container image from a plurality of sources to store in a database. The preference analyzer module is configured to collect a plurality of user preferences for analysis and prioritizing the user preferences. The preference analyzer module further identifies the container image and initiates a negotiation on the user preferences. The image initializer module is configured to prepare a virtual environment for creating the container image. The image initializer module initiates a downloading operation to download a plurality of software and further transfer the plurality of software to a plurality of respective resources for creating the container image. The image builder module is configured to create the container image based on the user preferences. The image builder module further scans the created container image to provide technical information about the container image.
[0020] An aspect of the present disclosure relates to a system to identify a container image and dynamically create the container image based on a plurality of user preferences. The system includes a processor and a memory. The memory stores machine-readable instructions that when executed by the processor cause the processor to obtain information about the container image from a plurality of sources to store in a database througli an image information collector module. Then the processor is configured to collect a plurality of user preferences for analysis and prioritizing the user preferences through a preference analyzer module. The preference analyzer module further identifies the container image and initiates a negotiation on the user preferences. The processor is then configured to prepare a virtual environment for creating the container image through an image initializer module. The image initializer module initiates a downloading operation to download a plurality of software and further transfer the plurality of software to a plurality of respective resources for creating the container image. The processor is further configured to create the container image based on the user preferences through an image builder module. The image builder module further scans the created container image to provide technical information about the container image.
[0021] Accordingly, one advantage of the present invention is that it enables a user to view the technical infonnation about the related container images.
[0022] Accordingly, one advantage of the present invention is that it enables the user to select the best and appropriate suitable container image for creation based on their specific preferences.
[0023] Accordingly, one advantage of the present invention is that it enables the user dynamically create the container images.
[0024] Other features of embodiments of the present disclosure will be apparent from accompanying drawings and from the detailed description that follows.
BRIEF DESCRIPTION OF THE DRAWINGS
[0025] In the figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label with a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description applies to any one of the similar components having the same first reference label irrespective of the second reference label. [0026] FIG. 1 illustrates a network implementation of the container image system and method to identify a container image and dynamically create the container image based on a plurality of user preferences, in accordance with an embodiment of the present subject matter. [0027] FIG. 2 illustrates the container image system to identify a container image and dynamically create the container image based on a plurality of user preferences, in accordance with an embodiment of the present subject matter.
[0028] FIG. 3 illustrates the architecture of the container image system, in accordance with an embodiment of the present subject matter.
[0029] FIG. 4 illustrates a flowchart of the method for identifying a container image and dynamically creating the container image based on a plurality of user preferences, in accordance with at least one embodiment.
[0030] FIG. 5 illustrates a flowchart of the operations involves in verifying the collected user preferences against a plurality of rules to identify one or more invalid user preference through a preference analyzer module, in accordance with at least one embodiment.
[0031] FIG. 6 illustrates a flowchart of the operations involves in prioritizing the user preferences through the preference analyzer module, in accordance with at least one embodiment. [0032] FIG. 7 illustrates a flowchart of the operations involves in identifying the container image and initiating a negotiation on the user preferences through a preference analyzer module, in accordance with at least one embodiment.
[0033] FIG, 8 illustrates a flowchart of the operations involves in preparing a virtual environment for creating the container image through an image initializer module, in accordance with at least one embodiment. [0034] FIG.9 illustrates a flowchart of the operations involves in creating the container image based on the user preferences through an image builder module, in accordance with at least one embodiment.
DETAILED DESCRIPTION
[0035] Systems and methods are disclosed for identifying a container image and dynamically creating the container image based on a plurality of user preferences. Embodiments of the present disclosure include various steps, which will be described below. The steps may be performed by hardware components or may be embodied in machine- executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the steps. Alternatively, steps may be performed by a combination of hardware, software, firmware, and/or by human operators.
[0036] Embodiments of the present disclosure may be provided as a computer program product, which may include a machine-readable storage medium tangibly embodying thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process. The machine-readable medium may include, but is not limited to, fixed (hard) drives, magnetic tape, floppy diskettes, optical disks, compact disc read-only memories (CD-ROMs), and magneto-optical disks, semiconductor memories, such as ROMs, PROMs, random access memories (RAMs), programmable read-only memories (PROMs), erasable PROMs (EPROMs), electrically erasable PROMs (EEPROMs), flash memory, magnetic or optical cards, or other type of media/machine-readable medium suitable for storing electronic instructions (e.g., computer programming code, such as software or firmware).
[0037] Various methods described herein may be practiced by combining one or more machine-readable storage media containing the code according to the present disclosure with appropriate standard computer hardware to execute the code contained therein. An apparatus for practicing various embodiments of the present disclosure may involve one or more computers (or one or more processors within a single computer) and storage systems containing or having network access to computer program(s) coded in accordance with various methods described herein, and the method steps of the disclosure could be accomplished by modules, routines, subroutines, or subparts of a computer program product.
[0038] The present invention discloses a system and method whereby the container images are available online for the users. The user are able find the corresponding meta-data information which explains the container image or the technical information such as bugs, vulnerabilities about each layer of the container image is readily accessible thereby. The system and method is adapted to generate the container image based on the policy file and and it offers mechanisms to dynamically build the desired container image based on the user preferences.
[0039] Although the present disclosure has been described with the purpose of identifying a container image and dynamically creating the container image based on a plurality of user preferences, it should be appreciated that the same has been done merely to illustrate the invention in an exemplary manner and any other purpose or function for which explained structures or configurations could be used, is covered within the scope of the present disclosure.
[0040] Exemplary embodiments will now be described more fully hereinafter with reference to the accompanying drawings, in which exemplary embodiments are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. These embodiments are provided so that this disclosure will be thorough and complete and will fully convey the scope of the invention to those of ordinary skill in the art. Moreover, all statements herein reciting embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure). [0041] Thus, for example, it will be appreciated by those of ordinary skill in the art that the diagrams, schematics, illustrations, and the like represent conceptual views or processes illustrating systems and methods embodying this invention. The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing associated software. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the entity implementing this invention. Those of ordinary skill in the art further understand that the exemplary hardware, software, processes, methods, and/or operating systems described herein are for illustrative purposes and, thus, are not intended to be limited to any particular name. [0042] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits, systems, networks, processes, and other components may be shown as components in block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail to avoid obscuring the embodiments.
[0043] The term“machine-readable storage medium" or“computer-readable storage medium” includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other mediums capable of storing, containing, or canying instruction(s) and/or data. A machine-readable medium may include a non-transitory medium in which data can be stored, and that does not include carrier waves and/or transitory electronic signals propagating wirelessly or over wired connections. Examples of a non- transitory medium may include but are not limited to, a magnetic disk or tape, optical storage media such as compact disk (CD) or versatile digital disk (DVD), flash memory, memory or memory devices.
[0044] FIG. 1 illustrates a network implementation 100 an container image system 102 and method to identify a container image and dynamically create the container image based on a plurality of user preferences, in accordance with an embodiment of the present invention. Although the present subject matter is explained considering that the container image system 102 is implemented on a server, it may be understood that the container image system 102 may also be implemented in a variety of computing systems, such as a laptop computer, a desktop computer, a notebook, a workstation, a mainframe computer, a server, a network server, and the like. It will be understood that the container image system 102 may be accessed by multiple users through one or more computing devices 104-1, 104-2...104-N, collectively referred to as computing unit 104 hereinafter, or applications residing on the computing unit 104. Examples of the computing unit 104 may include but are not limited to, a portable computer, a personal digital assistant, a handheld or mobile device, smart devices, and a workstation. The computing units 104 are communicatively acccessible to the container image system 102 through a network 106.
[0045] In one implementation, the network 106 may be a wireless network, a wired network or a combination thereof. The network 106 can be implemented as one of the different lypes of networks, such as an intranet, local area network (LAN), wide area network (WAN), the internet, and the like. The network 106 may either be a dedicated network or a shared network. The shared network represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet Protocol (TCP/IP), Wireless Application Protocol (WAP), and the like, to communicate with one another. Further, the network 106 may include a variety of network devices, including routers, bridges, servers, computing devices, storage devices, and the like.
[0046] FIG. 2 illustrates the container image system 102 of FIG. 1 to identify a container image and dynamically create the container image based on a plurality of user preferences, in accordance with an embodiment of the present invention. The system 102 may include at least one processor 202, an input/output (I/O) interface 204, and a memory 206.
[0047] The processor 202 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the at least one processor 202 is configured to fetch and execute computer-readable instructions stored in the memory 206. [0048] The I/O interface 204 may include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like. The I/O interface 204 may allow the system 102 to interact with a user directly or through the computing unit 104. Further, the I/O interlace 204 may enable the system 102 to communicate with other computing devices, such as web servers and external data savers (not shown). The I/O interface 204 can facilitate multiple communications within a wide variety of networks and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite. The I/O interface 204 may include one or more ports for connecting a number of devices to one another or to another server.
[0049] The memory 206 may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read-only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. The memory 206 may include modules 208 and data 210.
[0050] The modules 208 include routines, programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types. In one implementation, the modules 208 may include an image information collector module 212, a preference analyzer module 214, an image initializer module 216, an image builder module 218, and other module 222. The other modules 222 may include programs or coded instructions that supplement applications and functions of the system 102.
[0051] The data 210, amongst other things, serves as a repository for storing data processed, received, and generated by one or more of the modules 208. The data 210 may also include an image information collector data 223, a preference analyzer data 224, an image initializer data 225, an image builder data 226 and other data 234. The other data 234 may include data generated as a result of the execution of one or more modules in the other module 222.
[0052] In one implementation, the image information collector module 212 is configured to obtain information about the container image from a plurality of sources to store in a database. Examples of the plurality of sources include but are not no limited to https://hub.docker.com/explore/, https://bitnami.eom/containers#turnkey-containers, or any platform utilized by developers to build, package, maintain and run distributed applications. The preference analyzer module 214 is configured to collect a plurality of user preferences for analysis and prioritizing the user preferences. For example, the user prefers to use a specific version of the operating system (OS) such as“Ubuntu 16.04”, or “Ubuntu 18,04". Similarly, the user prefers to use a specific version of the application. The preference analyzer module 214 accordingly collects the preferred OS version and application version for analysis. In an embodiment, the preference analyzer module 214 further generates a search identification number to check historical preferences of a user.
[0053] In an embodiment, the plurality of user preferences are selected from at least one of an operating system, version of a software, size of the software, recommended release of the software, a plurality of grade level of the software, and a combination thereof. Typically, the operation of the software versions depends on the version of the operating system in use. Thus the top priority for the preference analyzer module 214 is to select the version of the operating system to find the appropriate software version. For example, the default Docker version 1.11 is available in Ubuntu OS 14.04 (trusty) and a default Docker version 17.05 is available in Ubuntu OS 16.04. In an embodiment, the obtained information about the container image comprises operating system data, application data, type of build data, star rating data, number of download data, and vulnerable data.
[0054] The preference analyzer module 214 further identifies the container image and initiates a negotiation on the user preferences. In an embodiment, the preference analyzer module 214 further verifies the collected user preferences against a plurality of rules to identify one or more invalid user preference. In case the required software A is not available in the OS version X, then predefined rules eliminate the failure condition by having a list of software versions available to that respective OS. The present invention utilizes a knowledge repository for references to identify the software list and available versions. The identified invalid user preferences are displayed over a display module. In an embodiment, the preference analyzer module 214 further identifies a suitable index of the container image based on the collected user preferences; negotiates on the user preferences to select an appropriate container image, and acknowledges and provides information about the container image based on the negotiation on the user preferences.
[0055] The image initializer module 216 is configured to prepare a virtual environment for creating the container image. The image initializer module 216 initiates a downloading operation to download a plurality of software and further transfer the plurality of software to a plurality of respective resources. In an exemplaiy embodiment, the image initializer module 216 enables a user to download the software by using the command line. For example, docker pull Ubuntu: 16.04 <ImageName>, wget <url> etc. In other embodiment, a Graphical User Interface (GUI) may be adapted.
[0056] In an embodiment, the resources are the servers comprises adequate memory and storage space for managing the creation of the container images. Based on the requirement; the resources are identified in run-time for building the container images. In an additional embodiment, the image initializer module 216 manages the download of the container image and the pre-requisite. The image builder module 218 is configured to create the container image based on the user preferences. The image builder' module 218 further scans the created container image to provide technical information about the container image. In an embodiment, the image builder module 218 prepares a plurality of build sources and stores a template identification number in the database. Table 1 below exemplifies some technical information of the container image built. The build sources are used when the container image is required to build with the user-defined files (e.g., scripts, and files). Examples of the build include but are not limited to command: docker builds -t ubuntu: user — f Dockerfile /imagesource-directory. This exemplary command builds the images with all the files listed in the image source directory which contains all the files uploaded by the user. In an embodiment, the template identification number is auto-generated and labeled. For example, "newbuild 10”: Description: TomcatS+ubuntu 16.04, which can be referenced, if a similar request made from the other user to build the container images in less time. [0057] FIG. 3 illustrates the architecture 300 of the system in accordance with an embodiment of the present subject matter. The image information collector 304 obtains the information from the sources and update in knowledge database 305. Thus all detailed information about the images are available in the knowledge database 305. Table 1 illustrates the obtained container image information. The preference analyzer 306 collects the user preferences 302 and negotiates with the desired requirement. The user inputs are verified and process to the image initializer 308 for further processing. Then the invalid inputs are identified and displayed to the user. The image initializer 308 prepares the environment for building the container image. All necessary software are downloaded and moved or copied to the respective resource for building. The image builder 310 creates the desired image based on the user preferences. Further, the image builder 310 scans the built image and provide the summary of the image details. Thus the container image system and method collect the user preferences and negotiate for proper selection of the image. Further, the container image system and method prepare a suitable environment for building the image based on the comparative analysis of the existing image and build a new image based on the user preferences.
Table 1: Image built information
Figure imgf000016_0001
[0058] FIG. 4 illustrates a flowchart 400 of the method for identifying a container image and dynamically creating the container image based on a plurality of user preferences, in accordance with at least one embodiment. The steps of FIG. 4 are explained in conjunction with FIGs. 5-9. The method initiates with a step 402 of obtaining information about the container image from a plurality of sources to store in a database through an image information collector module 212. In an embodiment, the obtained information pertaining to the container image comprises operating system data, application data, type of build data, star rating data, number of download data, and vulnerable data. [0059] Then the method includes a step 404 of collecting a plurality of user preferences for analysis and prioritizing the user preferences through a preference analyzer module 214.
The preference analyzer module 214 further identifies the container image and initiates a negotiation on the user preferences. In an embodiment, the plurality of user preferences are selected from at least one of an operating system, version of a software, size of the software, recommended release of the software, a plurality of grade level of the software, and/or a combination thereof.
[0060] In step 406, a virtual environment is created for creating the container image.
The virtual environment is created through the image initializer module 216. In step 408, a container image is created based on the user preference. The container image is created by the image builder module 218. More detailed operations of steps 406 and 408 will be provided later below along with FIG.8 and 9 respectively.
[0061] FIG. 5 illustrates a flowchart 500 of the operations involve in verifying the collected user preferences against a plurality of rules to identify one or more invalid user preference through a preference analyzer module, in accordance with at least one embodiment of the present invention. The step 404 of collecting user preferences for analysis and prioritizing the user preferences further comprises a step 504 of verifying the collected user preferences against a plurality of rales such as the size of the software applications and version conflicts between the various software applications to identify one or more invalid user preference. In case, the verification of the initial user preferences or user’s input fails then the invalid user preference is displayed 502 over a display module. Further, if the collected user inputs are verified to be valid, the user is prompt for inputs for customization 506. If the user needs customization, the user input data is stored 508 and then the system stores the category details 510 of the user input data. In case the user is not willing to customize the user input data then the system directly stores category details 510 of the user input data. Examples of the category details include but not limited to whether the request is for a new build of the container image or the system has to initiate the new search. In case the similar container images are not available, the system has to build a new container image from scratch or update the existing container image with the required software received from the user. [0062] FIG. 6 illustrates a flowchart 600 of the operations involve in prioritizing the user preferences through the preference analyzer module 214, in accordance with one embodiment of the present invention. The step of prioritizing the user preferences comprises a step 602 of generating a search identification number to check 604 historical preferences of a user. If the historical preferences of the user are present, the system identifies 606 the matching search identification number corresponding to the generated search identification number. In case the historical preferences of the user are not present, the system initiates order 608 for the historical preferences of the user. As soon as the system receives the historical preferences of the user, the system updates 610 the search identification number.
[0063] FIG. 7 illustrates a flowchart 700 of the operations involve in identifying the container image and initiating a negotiation on the user preferences through a preference analyzer module 214, in accordance with one embodiment of the present invention. The step of identifying the container image and initiating a negotiation on the user preferences further comprises a step 702 of identifying a suitable index of the container image based on the collected user preferences. Then the method includes the step 704 of negotiating on the user preferences to select an appropriate container image. After that, the method includes the step 706 of acknowledging and providing information about the container image based on the negotiation on the user preferences. [0064] FIG, 8 illustrates a flowchart 800 of the operations involve in preparing a virtual environment for creating the container image through an image initializer module 216, in accordance with one embodiment of the present invention. The method includes a step 406 of preparing a virtual environment for creating the container image through an image initializer module 216. For a new creation or build 802 of the container image, the image initializer module 216 initiates a downloading operation to download a plurality of software and further transfer or copy 804 the plurality of software to a plurality of respective resources for creating the container image. Then the method initiates order 806 about the dependencies of the software. The step 406 of preparing the virtual environment for creating the container image further comprises a step 808 of preparing a plurality of build sources, and a step 810 of updating or storing a template identification number in the database.
[0065] FIG. 9 illustrates a flowchart 900 of the operations involve in creating the container image based on the user preferences through an image builder module 218, in accordance with one embodiment of the present invention. The method includes a step 408 of creating the container image based on the user preferences through an image builder module 218. Then the step 408 of creating the container image further comprises a step 902 of initiating a process to create the container image. The image builder module further scans 904 the created container image to display 906 technical information about the container image.
[0066] Thus the container image system and method provide an efficient, simpler and more elegant framework for identifying a container image and dynamically creating the container image based on a plurality of user preferences. Further, the container image system and method provide meta-data information to explain the container image. Additionally, the container image system and method provide the technical information such as bugs, vulnerabilities, etc. about each layer of the container image. [0067] While embodiments of the present disclosure have been illustrated and described, it will be clear that the disclosure is not limited to these embodiments only.
Numerous modifications, changes, variations, substitutions, and equivalents will be apparent to those skilled in the art, without departing from scope of the disclosure, as described in the claims.

Claims

CLAIMS:
1. A method implemented by one or more processors (202) for identifying a container image and dynamically creating the container image based on a plurality of user preferences, characterized in that the method comprising: obtaining, by one or more processors (202), information pertaining to the container image from a plurality of sources to store in a database through an image information collector module (212); collecting, by one or more processors (202), a plurality of user preferences for analyzing and prioritizing the user preferences through a preference analyzer module (214), wherein the preference analyzer module (214) further identifies the container image and initiates a negotiation on the user preferences, wherein the plurality of user preferences are selected from at least one of an operating system, version of a software, size of the software, recommended release of the software, a plurality of grade level of the software, and/or a combination thereof; preparing, by one or more processors (202), a virtual environment for creating the container image through an image initializer module (216), wherein the image initializer module (216) initiates a downloading operation to download a plurality of software and further transfer the plurality of software to a plurality of respective resources for creating the container image; and creating, by one or more processors (202), the container image based on the user preferences through an image builder module (218), wherein the image builder module (218) further scans the created container image to provide technical information pertaining to the container image.
2. The method according to claim 1, wherein the step of collecting user preferences for analyzing and prioritizing the user preferences further comprises a step of verifying, by one or more processors (202), the collected user preferences against a plurality of rules to identify one or more invalid user preference, wherein the identified invalid user preference displayed over a display module.
3. The method according to claim 1, wherein the obtained information pertaining to the container image comprises operating system data, application data, type of build data, star rating data, number of download data, and vulnerable data.
4. The method according to claim 1, wherein the step of prioritizing the user preferences further comprises a step of generating, by one or more processors (202), a search identification number to check historical preferences of a user.
5. The method according to claim 1, wherein the step of identifying the container image and initiating a negotiation on the user preferences further comprises a step of:
identifying, by one or more processors (202), a suitable index of the container image based on the collected user preferences;
negotiating, by one or more processors (202), on the user preferences to select an appropriate container image; and
acknowledging and providing, by one or more processors (202), information pertaining to the container image based on the negotiation on the user preferences.
6. The method according to claim 1, wherein the step of preparing the virtual environment for creating the container image further comprises a step of preparing, by one or more processors (202), a plurality of build sources, and storing a template identification number in the database.
7. A system to identify a container image and dynamically create the container image based on a plurality of user preferences, characterized in that, the system comprising: a memory (206) to store machine readable instructions pertaining to identification and creation of the container image; and
a processor (202) coupled to the memory and operable to execute the machine readable instructions stored in the memory, wherein the processor (202) comprises: an image information collector module (212) to obtain information pertaining to the container image from a plurality of sources to store in a database, wherein the obtained information pertaining to the container image comprises operating system data, application data, type of build data, star rating data, number of download data, and vulnerable data; a preference analyzer module (214) to collect a plurality of user preferences for analyzing and prioritizing the user preferences, wherein the preference analyzer module (214) further identifies the container image and initiates a negotiation on the user preferences to select an appropriate container image, wherein the plurality of user preferences are selected from at least one of an operating system, version of a software, size of the software, recommended release of the software, a plurality of grade level of the software, and/or a combination thereof;
an image initializer module (216) to prepare a virtual environment to create the container image, wherein the image initializer module (216) initiates a downloading operation to download a plurality of software and transfers the plurality of software to a plurality of respective resources to create the container image; and
an image builder module (218) to create the container image based on the user preferences, wherein the image builder module (218) further scans the created container image to provide technical information pertaining to the container image.
8. The system according to claim 7, wherein the preference analyzer module (214) verifies the collected user preferences against a plurality of rules to identify one or more invalid user preference; and acknowledges and provides information pertaining to the container image based on the negotiation on the user preferences.
9. The system according to claim 7, wherein the preference analyzer module (214) generates a search identification number to check historical preferences of a user; and identifies a suitable index of the container image based on the collected user preferences.
10. The system according to claim 7, wherein the image initializer module (216) prepares a plurality of build sources; and stores a template identification number in the database.
PCT/MY2019/050042 2018-08-15 2019-08-13 System and method for identifying container image and dynamically creating the container image WO2020036482A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
MYPI2018001447 2018-08-15
MYPI2018001447 2018-08-15

Publications (1)

Publication Number Publication Date
WO2020036482A1 true WO2020036482A1 (en) 2020-02-20

Family

ID=69525710

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/MY2019/050042 WO2020036482A1 (en) 2018-08-15 2019-08-13 System and method for identifying container image and dynamically creating the container image

Country Status (1)

Country Link
WO (1) WO2020036482A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150054496A (en) * 2013-11-12 2015-05-20 삼성전자주식회사 Server providing cloud service, terminal for developer and method for supporting application development thereof
US20160026442A1 (en) * 2014-07-25 2016-01-28 Mahesh Kumar Chhaparia Method and system for hosting and running user configured dynamic applications through a software container on a computing device
WO2016077367A1 (en) * 2014-11-11 2016-05-19 Amazon Technologies, Inc. System for managing and scheduling containers
KR20160110460A (en) * 2014-01-21 2016-09-21 오라클 인터내셔날 코포레이션 System and method for supporting multi-tenancy in an application server, cloud, or other environment
US9720709B1 (en) * 2014-06-19 2017-08-01 Amazon Technologies, Inc. Software container recommendation service

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150054496A (en) * 2013-11-12 2015-05-20 삼성전자주식회사 Server providing cloud service, terminal for developer and method for supporting application development thereof
KR20160110460A (en) * 2014-01-21 2016-09-21 오라클 인터내셔날 코포레이션 System and method for supporting multi-tenancy in an application server, cloud, or other environment
US9720709B1 (en) * 2014-06-19 2017-08-01 Amazon Technologies, Inc. Software container recommendation service
US20160026442A1 (en) * 2014-07-25 2016-01-28 Mahesh Kumar Chhaparia Method and system for hosting and running user configured dynamic applications through a software container on a computing device
WO2016077367A1 (en) * 2014-11-11 2016-05-19 Amazon Technologies, Inc. System for managing and scheduling containers

Similar Documents

Publication Publication Date Title
US10908887B2 (en) Dynamic container deployment with parallel conditional layers
US12032956B2 (en) Techniques to deploy an application as a cloud computing service
García et al. A cloud-based framework for machine learning workloads and applications
US11599348B2 (en) Container image building using shared resources
JP6258494B2 (en) Move instance of virtual computer processing
US9465625B2 (en) Provisioning of operating environments on a server in a networked environment
US11062022B1 (en) Container packaging device
US8171141B1 (en) Provisioning system including stack manager
US7886292B2 (en) Methodology of individualized software deployment for hardware-independent personal computer mass development
US20190034323A1 (en) System and method for generating regression test suite
CN111527474A (en) Dynamic delivery of software functionality
US20210294600A1 (en) Automated transformation of applications to a target computing environment
CN106462442A (en) System and method of loading virtual machines
CN115185644A (en) Detection method, system, equipment and storage medium based on container interactive application
US20210405988A1 (en) System and method for automatic deployment of a cloud environment
WO2020036482A1 (en) System and method for identifying container image and dynamically creating the container image
US11789774B2 (en) Optimization of workload scheduling in a distributed shared resource environment
CN117296042A (en) Application management platform for super-fusion cloud infrastructure
US20240311118A1 (en) Ai based operator install advisor
US12013774B2 (en) Verification of core file debugging resources
US11809841B1 (en) Automatic source code refactoring to mitigate anti-patterns
US11947495B1 (en) System and method for providing a file system without duplication of files
CN117648198B (en) Application adaptation method, device, equipment and storage medium
US20240086188A1 (en) Automatic navigation between reference architecture and code repository
US20240311375A1 (en) Contextual searches in software development environments

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19849746

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19849746

Country of ref document: EP

Kind code of ref document: A1