~/talk

Why you’re going to FAIL running Java on docker!

Talkat JavaDay Ukraine 2017 · 2017-11-04..11-05· [java]
slides:none on file

Java inside Docker often dies because the JVM assumes host CPUs and RAM instead of container cgroups: demos with a Spring Boot fat‑jar on OpenJDK show a container limited to 100MB or 50MB while the JVM reports ~240MB and gets OOM‑killed by the kernel. Java 8u131 / Java 9 add fixes but require experimental flags (e.g. -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap) or explicitly set -Xmx ≈50% of container RAM. Kubernetes restarts dead pods, kubernetes restarts but doesn't fix root cause. Use cpu‑quota/cpuset, resource limits, or the fabricate/fabric8 base image and Maven plugin to apply safe JVM settings.

AI-written summary · about

  1. 0:00Introduction to containers
  2. 1:28Concepts of containerization
  3. 6:30History and portability
  4. 9:41Cgroups and namespaces
  5. 12:04Kubernetes overview
  6. 13:08Java memory issues
  7. 17:31Memory and CPU constraints
  8. 23:31Advanced resource management
  9. 27:58Demonstrating container failure
  10. 34:24Kubernetes orchestration
  11. 41:44Tools and concluding Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.