Containerizing Java EE 8 Apps Using Docker and Kubernetes

Connect the dots and develop Java EE applications.

4.10 (48 reviews)


3 hours


Jun 2018

Last Update
Regular Price

Exclusive  SkillShare  Offer
Unlimited access to 30 000 Premium SkillShare courses

What you will learn

Package, distribute, and run applications in Docker containers

Install and configure containerized Java EE application servers

Deploy enterprise applications as Kubernetes pods, deployments, and services

Leverage Kubernetes' production-readiness

Configure containerized and orchestrated applications

Realize persistence in cluster environments

Access orchestrated external systems

Troubleshoot containers and orchestration environments


Some enterprise developers might wonder whether the Java EE platform is eligible for realizing modern, containerized enterprise applications that run in cloud offerings.
A lot of enterprises migrate their runtime environments to platforms that are based on Docker and Kubernetes.

Container technologies, in combination with orchestration, provide significant advantages in the way companies deploy and operate their enterprise software.

This raises the question: Are enterprise applications developed with Java EE eligible for these technologies; if so, how can this transition be accomplished?

This course will show you how it is possible to develop Java EE 8 applications that run in containers. We will see why Java EE specifically is a natural fit for containers.

This course starts with practical ways on how you can use Docker in Java EE 8 and how to troubleshoot containers. You will run Java EE in containers. This course will also teach you how to configure containerized applications. Also you will orchestrate containers using Kubernetes.

By the end of the course, you will be able to Integrate Java EE applications into Kubernetes.

All the code and supporting files for this course are available on Github

About the Author :

Sebastian Daschner is a self-employed Java consultant, author, and trainer and is enthusiastic about programming and Java (EE). He participates in the JCP, helping to form the future standards of Java EE, serves in the JSR 370 and 374 Expert Groups, and collaborates on various open source projects. For his contributions in the Java community and ecosystem, he was recognized as a Java Champion, Oracle Developer Champion, and double 2016 JavaOne Rockstar. He has been working with enterprise Java for more than 8 years. Besides Java, Sebastian is also a heavy user of Linux and container technologies such as Docker. He evangelizes computer science practices, in his Newsletter, and on Twitter via @DaschnerS. When not working with Java, he also loves to travel the world—either by plane or motorbike.


Containerizing Java EE 8 Apps Using Docker and Kubernetes
Containerizing Java EE 8 Apps Using Docker and Kubernetes
Containerizing Java EE 8 Apps Using Docker and Kubernetes
Containerizing Java EE 8 Apps Using Docker and Kubernetes


Using Docker

The Course Overview

Starting Docker containers

Life cycle of containers

Images, tags & Dockerfiles



Distributing Docker images

Troubleshooting containers

Running Java EE in containers

Packaging Java EE applications

Containerizing Java Enterprise

Java in containers – challenges

Leveraging Docker’s copy-on-write file system

Configuring containerized Java applications

What to configure?

Configuring dockerized application servers

Configuring dockerized applications

Communicating via Docker networks

Orchestrating containers using Kubernetes

Deploying Docker images as Kubernetes pods

Exposing pods via services and ingresses

Kubernetes deployments

Deploying applications with zero-downtime

Example zero-downtime deployment

Configuring environments using config maps and secrets

Troubleshooting Kubernetes workloads

Integrating Java EE applications into Kubernetes

Configuring enterprise applications in Kubernetes

Managing application credentials

Realizing persistence in Kubernetes

Accessing services within clusters

Defining workload resource limits

Managing multiple application environments


Brian27 March 2021

Excellent overview course. Nicely tied into the JavaEE focus. Could include some more in-depth details. Like Spring-Boot embedded app servers.

Jonathan3 July 2020

Sebastian is very clear, concise, and engaging. I found his examination of how to jointly configure Docker, Kubernetes, and JavaEE to be consistently coherent and thorough.

Horst26 November 2019

as always small examples but the real world applications with business logic and multiple layers are not covered... and EAR files are still needed if you want to REUSE the Business logic part or is there a other solution

Dmitry24 July 2018

Overall course is good, a lot of things have been included in 3hr. But, as I think, some important things like running few replicas, demonstration of autoscaling and loadbalancing features is a must for such course. Anyway, thanks a lot!


Udemy ID


Course created date


Course Indexed date
Course Submitted by