Home  /  Deployment Discovery  /  Java in Containers and How to Find It
Deployment Discovery

Java in Containers and How to Find It

Containers are where Oracle Java most easily slips past a traditional asset scan, because the runtime lives inside an image rather than on a host. This is a buyer side guide to finding the Java buried in your container estate, identifying the distribution, and containing it before a 2026 audit turns one base image into a workforce wide claim.

Containers package a Java runtime inside the image, so a host level inventory never sees it and a single shared base image can multiply one Oracle Java install across hundreds of running workloads. Scan images at the registry and in the build pipeline, capture the vendor of every runtime, and contain Oracle Java to the images that genuinely need it before an audit prices the whole estate.

Why containers are the blind spot

The whole point of a container is that it carries everything an application needs to run, including its language runtime. When a team builds a container for a Java application, the Java runtime is copied into the image and travels with it. Nothing about that runtime registers on the host operating system in the way a normal install would, because from the host's point of view the container is just a process. A standard software inventory that walks installed packages on each server will not see the Java inside a container at all. This is the single most common reason an organization believes it has far less Oracle Java than it actually runs.

The exposure matters because of how Oracle prices Java since January 2023. The Universal Subscription counts every full time and part time employee, every contractor, and every temporary worker, regardless of who touches the application. So the question an audit asks is never how many containers run Oracle Java. It is whether any Oracle Java runs at all, because one confirmed commercial runtime is enough to argue that the entire counted population needs a subscription. A base image that quietly bakes in Oracle Java, then gets reused across hundreds of services, turns a single decision nobody revisited into the anchor for a workforce wide number.

Where the runtime actually lives

In a container estate, Oracle Java can sit in three places that each need a different look. It can be in a base image that many application images inherit from, which is the highest leverage case because the runtime propagates everywhere downstream. It can be added in an application's own build file when a team installs a specific Java distribution on top of a lighter base. And it can be pulled at build time from an internal artifact store or an external registry, where the choice of distribution may be invisible to the team that wrote the build file. Finding Oracle Java means inspecting all three layers, not just the running container.

The buyer side move

Scan container images where they are stored and where they are built, not the hosts where they run. Capture the vendor string of every Java runtime in every image layer, then trace each Oracle Java finding back to the base image or build step that introduced it, so you fix it once at the source rather than image by image.

How to scan a container estate for Java

  1. Inventory your images, not just your containers. Pull the list of images from every registry and artifact store your teams use, including base images and the application images built on top of them.
  2. Inspect each image's layers for a Java runtime. Look inside the filesystem of each image for runtime binaries, rather than checking only what happens to be running right now.
  3. Capture the distribution and version. Read the vendor identifier of each runtime so Oracle Java is separated cleanly from a free OpenJDK build, exactly as you would for a host install.
  4. Trace each finding to its source. Map every Oracle Java runtime back to the base image or build instruction that introduced it, because fixing the source removes it from every downstream image at once.
  5. Make the scan continuous. Wire the same check into the build pipeline so a new image carrying Oracle Java is flagged before it ships, not discovered years later in an audit.

The base image multiplier

The reason container Java deserves priority is the multiplier effect of a shared base image. Picture an anonymized financial services firm that maintained one internal base image for all of its Java services. At some point that image was built on a commercial Oracle Java runtime, a choice made once and never revisited. Over two years more than two hundred application images inherited from it. From a host scan the firm looked light on Java. In reality every one of those services carried Oracle Java, and under the employee metric the relevant fact was not the count of services but the single confirmed commercial runtime sitting under all of them. The figures here are indicative, but the shape is one we see repeatedly: one base image decision quietly defining an organization's entire Oracle Java position.

Indicative places Oracle Java hides in a container estate
LayerWhy a host scan misses itWhere to look
Shared base imageNever installed on the hostRegistry, base image catalog
Application build fileRuntime added at build timeBuild instructions, image layers
Pulled artifactDistribution chosen upstreamArtifact store, build logs

Containment, not panic

Finding Oracle Java in your images is not the same as owing Oracle a workforce wide subscription. It is the start of a containment exercise. Most container workloads run perfectly well on a free OpenJDK distribution, so the practical move is to rebuild the shared base image on a free runtime, which clears Oracle Java from every image that inherits it in a single change. Where a specific service genuinely requires Oracle Java, isolate that service, document why, and fold its narrow requirement into the small residual you negotiate against, rather than letting the whole estate hang on it. The goal is to walk into any audit able to show that Oracle Java is confined to a defined, deliberate set of images and that everything else runs on a free build you can prove.

Building the check into the pipeline

Containers move fast, and a one time scan goes stale the moment the next image ships. The durable answer is to put the same runtime check into the build pipeline, so every image is inspected for its Java distribution as it is built and an Oracle Java runtime is flagged before the image reaches a registry. This turns discovery from a periodic scramble into a standing control, and it gives you something valuable in a negotiation: a continuous record showing that you know exactly which images carry Oracle Java and when each one entered the estate. With the 2026 audits applying a three year lookback, a clean, dated record of what shipped and when is far stronger evidence than a snapshot taken under pressure after an audit letter lands.

The bottom line

Containers are the easiest place for Oracle Java to hide and the easiest place for one overlooked base image to define your entire exposure. Scan your images rather than your hosts, capture the distribution of every runtime, trace each Oracle Java finding to its source, and rebuild on a free distribution wherever you can. For the wider method of sweeping an estate, read finding Oracle Java in your estate before Oracle does, and to tell a commercial runtime from a free one with confidence, see distinguishing Oracle Java from OpenJDK in the wild. For the full discovery and defense method, read our Oracle Java licensing guide for 2026.

See the Java inside your images.

Download our Oracle Java licensing guide for 2026 to learn how to scan container images, tell Oracle Java from a free distribution, and stop one base image from defining your exposure.

Download the guide

Tell us the real numbers.

Fixed Fee from $18,000 or Gainshare, a share of verified savings or avoided exposure with zero retainer and no risk to you. We sit between you and Oracle and we never take vendor money.

Get a Quote

The Java Audit Brief

Weekly intelligence on Oracle Java licensing moves and the buyer side defenses that work.

Services · Pricing · Case Studies · White Papers · The Java Audit Brief · Licensing Guide
Get a Quote · Book a Strategy Call · New York · London Not affiliated with Oracle Corporation. Independent buyer side advisory only.