All Containers Page
The All Containers page contains features related to the discovery of inventory and information of your Docker container host, container images, and associated containers in your network. The discovered device records are created after the inventory data is imported into IT Asset Management. Application inventory is collected from running containers. After the inventory data is imported into FlexNet Manager Suite, matching discovered device records are created automatically.
Consider the following:
-
Each server license (for a device running a server operating system) covers up to 10 Docker containers. For example, 800 active Docker containers would require 80 server licenses, while 198 active Docker containers would need 20 server licenses.
-
Visibility of your Docker containers is disabled by default, so please ensure that you first enable it from the
[Inventory Settings Page](InvSet-PageIntro.htm#discoveryinventory_2577907552_1125536) page, under **[Container Scanning](InvSet-Containset.htm#discoveryinventory_2577907552_1126128).** -
FlexNet Inventory Agent requires a running container instance to gather application inventory.
Docker Containers and the Docker Engine
A Docker container image is a package of all the scripts, software, runtime, system tools, libraries, and configuration required to run an application. A container image can be launched as a Docker container in a lightweight isolated environment using the Docker Engine. Like virtual machines, containers isolate resources. However, while virtual machines abstract hardware and run individual kernels, containers abstract the operating system in a single namespaced kernel. Therefore, containers eliminate the weight of a hypervisor by executing directly on the Linux or Windows kernel. The concept of containerization is not new with Linux, as AIX Workload Partitions (wPAR) and Solaris Zones have come before. However, Docker has provided a far more complete ecosystem.
From version 15.0.0, FlexNet inventory agent includes a Docker tracker. When FlexNet inventory agent is locally installed on the host server where the containers are to run, its Docker tracker (once enabled) is responsible for monitoring the Docker Engine to discover containers as they start and stop. Further to this, it is responsible for gathering raw evidence from containers (and hence by inference, from the images from which they are instantiated). The Docker tracker waits for a container executing the image to be launched, and performs a zero-footprint inventory on the executing container (zero-footprint here means that the inventory component is loaded from the host into the container, executed with the resulting inventory reported to the host, and then removed from the container – a process which only needs to happen once per image, using the first available container invoked from that image). This enables the full capability of the FlexNet inventory agent to gather all types of raw installation evidence for each container image.
The default hierarchy of items in this Docker container/Engine case is:
-
Container Host
-
Image
-
Container
Containers Managed by Kubernetes
Originally designed by Google and now open source, Kubernetes is a container-orchestration system used for automating application deployment, scaling, and management. For example, if a container goes down (that is, the application running in that environment fails), Kubernetes can automatically start another container from the same image. The Kubernetes "culture" brings with it a naming convention that maps onto the names used in FlexNet Manager Suite as follows, and provides a distinct hierarchy of these items:
-
A Kubernetes cluster is similar to a cluster in other environments: it links multiple computers through a special configuration to operate effectively as a single system.
-
A Kubernetes worker, or node (or often 'worker node'), is a computer that runs containerized applications. This makes Kubernetes nodes analogous to virtual hosts that run virtual machines in non-containerized virtualization, or to a Container Host for Docker containers (as described above). For consistency, the Container Host terminology is used for both within FlexNet Manager Suite.
-
A Kubernetes pod is the most basic deployable object within Kubernetes, and may include one or more containers that share the common resources of the pod. There is no analog for a Kubernetes pod in the Docker Engine system, nor in traditional VMs.
-
A Kubernetes image means the same as in the basic Docker system — it is the master original from which containers can be instantiated.
-
In Kubernetes, a container is conceptually the same as in the basic Docker system, as described above. However, as Kubernetes abstracts the container technology, these may be any containers adhering to the Open Container Initiative, the standards body for the emerging container ecosystem.
This means that Kubernetes provides a five-level hierarchy of items, compared with the three levels under the Docker Engine system.
Page Layout
Each row of the All Containers listing displays one of the following cases:
-
A single container, along with details of its image, pod (for Kubernetes), host or node, and the cluster in which the host/node device operates
-
A pod that does not have any containers running (as far as is known from FlexNet inventory), in which case the container column remains blank
-
An image from which no container is currently instantiated (as far as is known from FlexNet inventory), in which case the container column and the pod column both remain blank.
By default, the listing has default groupings on:
-
The Cluster name
-
The Host name (which, you recall, displays the worker node in a Kubernetes cluster)
-
The Image ID identifying the image from which the container was instantiated.
You may use the + control to the left of any group name to expand that group and expose a hierarchy (for example, when there are multiple containers instantiated from the one image on a host), and subsequently use the - control to close down the group again; or you may use the grouping area above the listing to remove any or all of the groupings.
Available Columns
Columns are grouped into the following categories. The category name appears on the top of the column heading when you drag a property from the Column Chooser. Properties that belong to the same category appear under a single category title.
Some columns are displayed by default and others can be displayed through the column chooser. To manage columns and other UI options, see the topics under Managing Columns in a Table.
Cluster Properties
The following Cluster properties are displayed.
| Property | Description |
|---|---|
| Cluster ID | For Kubernetes, the unique ID of the cluster containing the worker node where the pod runs the container instantiated from the image. For a Docker environment, this column remains blank. |
| Cluster name | May display: A blank for a Docker environment. For Kubernetes, the name of the cluster containing the worker node where the pod is running (typically hosting a container instantiated from the named image). Cluster names are not guaranteed to be unique. You may resolve duplicate names by checking the Cluster ID . |
Container Properties
The following Container properties are displayed.
| Property | Description |
|---|---|
| Container ID | Unique identifier of the container. (Where the row displays either an image or a pod for which there is no container, this value remains blank.) |
| Container name | The name of the container, only populated when the current row displays a container (and remains blank for rows that contain either a Kubernetes pod without a container, or an image from which no container has been instantiated). |
| Last used date | This value may be: Blank for an image that has no containers Blank for a Kubernetes pod that does not include a container For containers with: A Status of Running, displays the current date. Any value of Status other than Running, displays the date when the container stopped running. |
| Repository tags | This value may be: Blank for rows displaying either an image without any instantiated containers, or an empty pod without a container The repository tag for the image used to launch this container. Most often this is the same value as for the image repository tags, but the value may be different where one of multiple image tags was selected for this container. |
| Status | Remains blank for rows without containers (images from which no container is instantiated, or pods without containers), and otherwise displays the status reported for the container. For a Kubernetes container, the three possible container states are: Running Terminated Waiting Unknown For further information please see https://kubernetes\.io/docs/concepts/workloads/pods/pod\-lifecycle/\. For a Docker container, the status may be one of: Created Dead Exited Paused Removing Restarting Running Unknown For further information please see https://docs\.docker\.com/engine/reference/commandline/ps/\#status\. |
Container Pod Properties
The following Container Pod properties are displayed.
| Property | Description |
|---|---|
| Container pod name | This value may be: Blank for a Docker environment, or for rows displaying an image without a container The name of the pod, for rows that display a Kubernetes pod without a container The name of the Kubernetes pod that the container is running in, for rows that display a Kubernetes container. |
| Namespace | This value may be: Blank for a Docker environment, or for rows displaying an image without a container The Kubernetes namespace for the pod, in rows displaying a pod without a container The Kubernetes namespace for the pod where the container is running (for a row displaying a Kubernetes container). |
| Status | The status may be: Blank for a Docker environment, or for rows displaying an image without a container The status of the pod (for rows displaying a Kubernetes container, this is the pod where the container is running). The status may then be one of the following “pod phases”: Failed Pending Running Succeeded Unknown For further information please see https://kubernetes\.io/docs/concepts/workloads/pods/pod\-lifecycle/\. |
| UID | This is either: Blank for a Docker environment, or for a row displaying an image without a container The UID of the pod, for rows displaying a Kubernetes pod without a container The UID of the pod where the container is running, for rows that display a Kubernetes container |
Host Properties
The following Host properties are displayed.
| Property | Description |
|---|---|
| Cores | The total number of processor cores available in the container’s host. |
| Corporate unit | The corporate unit responsible for the container’s host. |
| Cost center | The cost center responsible for all costs incurred for the container’s host. |
| Host name | The name of the host running the Docker service; or, in a Kubernetes environment, the name of the Kubernetes worker node. You can click on the container host link to open its Inventory Device Properties page. |
| Location | The location within your enterprise that is responsible for the container’s host. |
| Operating system | The operating system running on either: For a Kubernetes cluster, the operating system of the worker node (this worker node appears in the Host name column) For Docker, the operating system running on the Host name |
| Processors | The total number of processors available in the container’s host. |
| Role | The role assigned to the container’s host, such as Development , Test , and Production . |
| Status | The current state of the container’s host. It can have any of the following values: Active: The device is active, for which the inventory information is received from an inventory source. Archived: The device is in transition pending deletion, but is currently held because of its historical impacts on IBM PVU sub-capacity retrospective calculations. Awaiting Inventory: This device is a place-holder that has not yet appeared in imported inventory from any source. Ignored: The device is not managed. An ignored device is not considered in license consumption calculations. |
Image Properties
The following Image properties are displayed.
| Property | Description |
|---|---|
| Image ID | Unique identifier of the image. Populated for the image and containers instantiated from it. (Remains blank for any Kubernetes pod not running a container.) You can click on this link to open the Container Image Properties page for this image. |
| Image installed date | The date of when the image was installed on the device represented in this row. This value may be blank if this row displays a Kubernetes pod not running a container. |
| Last used date | This value may be: Blank for a Kubernetes pod that does not include a container In images with any running container, the most recent date that a reconcile occurred, when any container instantiated from this image was running For images without a running container, the date when the most recently-running container stopped running. |
| Operating system | This value may be: Blank if this row displays a Kubernetes pod that has no container For a row displaying an image without a container, the operating system in the user environment contained in the image For a row displaying a container, the operating system in the user environment contained in the image that the container is running. |
| Repository tags | This value may be: Blank if this row displays a Kubernetes pod that has no container The repository tag(s) associated with the image, for a row that displays an image without any container The repository tag(s) associated with the image that the container is running, for a row that displays a container. Multiple tags are comma-separated. |