We may earn an affiliate commission when you visit our partners.
Course image
John Thompson • 500,000+ Enrollments Worldwide and Spring Ahead Code Academy

If you're a Java developer, Docker is a true game changer for you.

Read more

If you're a Java developer, Docker is a true game changer for you.

Developing Java applications in large enterprises is no easy task. Every day you are asked to work with many different technologies. In the morning, you might need to save data to a MySQL database. In the afternoon, you might be working with RabbitMQ. Tomorrow you might be asked to work with Mongo or Redis.

Think about what you need to do when working with all these different technologies.

If you install all these on your laptop, it becomes cluttered and slow. Sure, you could use VMs to run these - if you really want to slow down your laptop. Virtual Machines are awesome, but VMs can also be huge resource hogs. 

If you're on a dev team, you can set up dedicated development servers. But then you don't have a clean development environment. And your development work becomes dependent on access to the development servers.

Docker is an exciting technology you can leverage for enterprise development.

The popularity of Docker has been explosive. Much of the industry focus has been on DevOps. But more so on the Operations part.

Did you know Google creates roughly

Docker is clearly a popular technology for running cloud scale applications like GMail. 

But as a Java developer, what does Docker mean to you?

Are you working with MySQL? There's a ready made Docker image for you.

Postgres? Mongo DB? Redis? Cassandra? RabbitMQ? ActiveMQ? Kafka?

Yep, there's Docker images you can download and use today.

You can use Docker for a lot more than just your local development. 

Are you developing microservices? If you are not already deploying your microservices in Docker containers, chances are you soon will be.

Introduction to Docker

This course starts off assuming you have no knowledge about Docker. 

You will learn why Docker is not like a Virtual Machine. 

Right away, you will learn how to run a Docker container with a Docker Image pulled down from Docker hub.

As the course progresses, you will learn how to create your own Docker images and publish those images to Docker hub.

Java DevOps with Docker

Through the use of the Fabric8 Maven plugin, you will learn how to automate many Docker tasks, such as creating images for microservices. 

Docker Compose is a powerful tool to run multiple Docker containers. You will learn how to run how to run an application consisting of a Spring Boot web application, RabbitMQ, a page view microservice, and a MySQL database. Through Docker Compose, with a single command, you will be able to start or stop this application on any Docker machine.

Using Docker Swarm Mode

You'll learn how Docker Swarm Mode does container orchestration. In this course, you will provision your own Docker Swarm Cluster in the cloud. You will deploy a containerized Java application into a Docker Swarm Cluster. You'll see what a powerful feature Docker Swarm's routing mesh is, and how you can dynamically scale your application. 

Expert Interviews

This course includes interviews with leading industry experts.

  • James Labocki - Product Owner, Red Hat Cloud Infrastructure

  • More on the way.

Slack Group

Exclusive to this course is a Slack group you can join to interact with the instructor, teachers assistants, and other students learning Docker from around the world. Say hi. Get help with a problem, or help someone else. When you enroll in this course you can join a community of others learning Docker.

Spring Boot Cookbook.

Course includes a Spring Boot Cookbook giving you example Spring Boot projects you can use against popular open source technologies including:

  • Mongo DB

  • MySQL

  • Postgres

  • Maria DB

  • DB2 Express

  • Neo4J

  • Redis

  • Cassandra

  • ActiveMQ

  • RabbitMQ

Enroll now

What's inside

Learning objectives

  • How you can run docker containers
  • How you can create and run your own docker images
  • Publish docker images to docker hub
  • Learn how to use docker compose to run multiple docker containers
  • Use docker swarm for cloud scale computing
  • Use maven to create docker images
  • How to use docker containers for integration tests
  • Run multiple docker containers with docker compose
  • How you can leverage docker containers for integration tests from ci builds
  • Create your own docker swarm cluster

Syllabus

Introduction
Course Introduction
Instructor Introduction
Free 120 Day IntelliJ Trial!
Read more
Checking out from GitHub
GitHub Workflow
Docker Cheat Sheet
Course Slack Room - Chat Live with Me and Other Gurus!
In this section, you learn about what Docker is and how the technology of Docker is much different than a virtual machine.

In this lecture I describe what Docker is, why Docker is important, and why you want to use Docker if you are a Java developer.

Docker Editions are a fairly new addition to Docker. In this lecture I explain what the different Editions of Docker are, and the new version numbering for Docker Releases. 

The student needs to install Docker on their operating system to follow along with the course examples. 

In this lecture we step through the classic "hello world" example using Docker. This verifies the student has correctly configured their Docker environment. 

Docker Hub is a public repository for Docker images.

Kitematic is a GUI tool for working with your Docker environment. In this lecture I give you an overview of Docker's kitematic tool. (This tool is optional for the course)

Assignment - Run Hello World Nginx
Conclusion
Learn how to assign storage and networking options to Docker containers
Running Mongo DB Docker Container
Assignment - download and run Spring Boot Project
Assignment Review
Docker Images
Docker Files
Non Persistent Container Storage
Assigning Storage
Assignment - Run Rabbit MQ in a Docker Container
Assignment - Run MySQL in a Docker Container
Docker House Keeping
Flash Cards
Running Spring Boot in a Centos Image
Preparing CentOS for Java development
Run Your Own Spring Boot App
Sample Spring Boot Application
Running Spring Boot from Docker
Assignment - Fix Dockerfile
Interview with James Labocki of Red Hat
Learn how to use Maven to create Docker Images
Maven vs Gradle and Fabric8
Spring Boot Application Code Review
Adding Fabric8 Maven Plugin
Creating Docker Image in Fabric 8
Publishing to Dockerhub
Assignment - perform a release in Maven
Assignment Code Review
Using A Docker File Template
Learn how to run Docker images from Maven
Running a Docker image from Maven
Design for a more robust application
Application Code Review
Running Example Application with Docker
Running Docker Containers via Maven
Using Docker Containers for Integration Testing
Using Maven for CI Builds
Assignment: Add Pageview Counter for Index Page
Learn how Docker Compose can be used to coordinate starting and stopping a group of containers.
Introduction to Docker Compose
YAML Crash Course
Run Wordpress with Docker Compose
Run Pageview Service with Docker Compose
Assignment: Add Web Application to Docker Compose
Adding Spring Boot Actuator
At the end of this module, you will be able to create your own Docker Swarm
What is Docker Swarm Mode?
Docker Swarm Mode Init
Docker Swarm Topology
Provision Servers for Docker Swarm
Assignment - Install Docker on Swarm Servers
Assignment - Review Install Docker
Creating a Multi Node Docker Swarm
Assignment - Install Portainer
Docker Swarm Service Discovery
Docker Swarm Routing Mesh
Running Java Apps in Docker Swarm
Deploy MySQL as Service in Docker Swarm
Docker Overlay Networks
Docker Swarm Stacks
Using Docker Secrets
Implementing Docker Secrets

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides foundational knowledge for using Docker in Java development, making it suitable for beginners looking to adopt Docker
Covers advanced concepts like Docker Compose and Swarm Mode, catering to intermediate-level learners seeking to enhance their Docker skills
Taught by instructors with extensive experience in the industry, ensuring learners receive up-to-date and practical knowledge
Focuses on real-world applications, equipping learners with the skills to apply Docker in various enterprise development scenarios
Provides hands-on practice through assignments and a Slack group, fostering a collaborative learning environment
Covers a comprehensive range of topics, including Docker basics, image creation, and deployment strategies, making it a well-rounded course

Save this course

Save Docker for Java Developers to your list so you can find it easily later:
Save

Reviews summary

Nicely organized

According to students, this course is well-organized, with videos and slides that make it easy to follow along with the instructor. Learners appreciate the clear and easy-to-navigate course structure.
Excellent course structure
"I think before starting a practical video, there should be slide giving information about the project name and the branch that has to be checked out. It will really save time."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Docker for Java Developers with these activities:
Review Java Fundamentals
Refresh your knowledge of Java fundamentals to strengthen your foundation for developing Dockerized Java applications.
Browse courses on Java Basics
Show steps
  • Review online resources on Java basics
  • Revisit your previous Java notes or tutorials
  • Practice simple Java exercises
Review Java programming concepts
Reviewing Java programming concepts will help you strengthen your foundation in Java, which is essential for understanding how to use Docker with Java applications.
Browse courses on Java
Show steps
  • Review basic Java syntax
  • Review object-oriented programming concepts
  • Review Java collections framework
Assemble a Docker Resources Collection
Compile a collection of valuable Docker resources, including documentation, tutorials, tools, and community resources.
Show steps
  • Gather resources from official Docker documentation, online forums, and technical blogs
  • Organize resources into categories or topics
  • Create a shared document or repository to store the collection
Nine other activities
Expand to see all activities and additional details
Show all 12 activities
Practice using Docker commands
Practicing using Docker commands will help you become familiar with the syntax and functionality of the Docker CLI, which is essential for managing Docker containers and images.
Browse courses on Docker
Show steps
  • List all running containers
  • Create a new container
  • Start a stopped container
  • Stop a running container
  • Delete a container
Follow a tutorial on Docker Compose
Following a tutorial on Docker Compose will help you understand how to use Docker Compose to manage multiple Docker containers as a single unit, which is useful for deploying complex applications.
Browse courses on Docker
Show steps
  • Find a tutorial on Docker Compose
  • Follow the steps in the tutorial
  • Deploy a sample application using Docker Compose
Attend a Docker workshop
Attending a Docker workshop will provide you with hands-on experience with Docker and allow you to learn from experts in the field, which can accelerate your learning.
Browse courses on Docker
Show steps
  • Find a Docker workshop
  • Register for the workshop
  • Attend the workshop
  • Complete the workshop exercises
Build and Run Docker Images
Practice building and running Docker images to gain hands-on experience with the core concepts.
Browse courses on Container Management
Show steps
  • Create a simple Dockerfile for a web application
  • Build and run the Docker image
  • Explore Docker commands for managing containers
Build a Docker image for a Java application
Creating a Docker image for a Java application will help you understand the structure and components of a Docker image, as well as how to package and deploy your Java application in a containerized environment.
Browse courses on Docker
Show steps
  • Create a Java application
  • Create a Dockerfile
  • Build the Docker image
  • Run the Docker image
Participate in a Docker study group
Participating in a Docker study group will allow you to interact with other learners, ask questions, and share your knowledge about Docker, which can enhance your understanding and retention.
Browse courses on Docker
Show steps
  • Find a Docker study group
  • Attend study group meetings
  • Participate in discussions
Follow Docker Compose Tutorials
Complete guided tutorials on Docker Compose to enhance your proficiency in managing multiple containers.
Browse courses on Docker Compose
Show steps
  • Find beginner-friendly tutorials on Docker Compose
  • Follow the tutorials to create and manage multi-container applications
  • Experiment with different Compose file configurations
Contribute to a Docker open source project
Contributing to a Docker open source project will allow you to gain practical experience with Docker and contribute to the Docker community, while also deepening your understanding of Docker's underlying architecture and design.
Browse courses on Docker
Show steps
  • Find a Docker open source project to contribute to
  • Read the project's documentation
  • Identify an issue or feature to work on
  • Create a pull request
Explore Docker Swarm Mode
Follow guided tutorials on Docker Swarm Mode to gain practical experience in managing containerized applications at scale.
Browse courses on Docker Swarm
Show steps
  • Find beginner-friendly tutorials on Docker Swarm Mode
  • Follow the tutorials to create and manage Docker Swarm clusters
  • Deploy and manage containerized applications on Swarm

Career center

Learners who complete Docker for Java Developers will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. They work to ensure that software applications are developed, deployed, and maintained efficiently and reliably. Docker is a popular technology for DevOps Engineers, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as a DevOps Engineer, as it will allow you to develop and deploy software applications more efficiently.
Site Reliability Engineer
Site Reliability Engineers are responsible for ensuring the reliability and performance of software systems. They work with a variety of technologies to monitor, troubleshoot, and resolve issues with software systems. Docker is a popular technology for Site Reliability Engineers, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as a Site Reliability Engineer, as it will allow you to monitor, troubleshoot, and resolve issues with software systems more efficiently.
Machine Learning Engineer
Machine Learning Engineers are responsible for developing and deploying machine learning models. They work with a variety of machine learning algorithms and techniques to create models that can learn from data and make predictions. Docker is a popular technology for Machine Learning Engineers, as it can be used to create and manage software containers for machine learning. By taking this course, you will learn how to use Docker to create and manage software containers for machine learning. This knowledge will be valuable to you as a Machine Learning Engineer, as it will allow you to develop and deploy machine learning models more efficiently.
Software Architect
Software Architects are responsible for designing and developing the architecture of software systems. They work with a variety of technologies to create software systems that are scalable, reliable, and maintainable. Docker is a popular technology for Software Architects, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as a Software Architect, as it will allow you to design and develop software systems that are more scalable, reliable, and maintainable.
Data Engineer
Data Engineers are responsible for designing, developing, and maintaining data systems. They work with a variety of technologies to collect, store, and process data. Docker is a popular technology for Data Engineers, as it can be used to create and manage software containers for data processing. By taking this course, you will learn how to use Docker to create and manage software containers for data processing. This knowledge will be valuable to you as a Data Engineer, as it will allow you to design, develop, and maintain data systems more efficiently.
Enterprise Architect
Enterprise Architects are responsible for designing and developing the architecture of enterprise systems. They work with a variety of technologies to create enterprise systems that are scalable, reliable, and maintainable. Docker is a popular technology for Enterprise Architects, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as an Enterprise Architect, as it will allow you to design and develop enterprise systems that are more scalable, reliable, and maintainable.
Data Scientist
Data Scientists are responsible for analyzing data to identify patterns and trends. They work with a variety of statistical and machine learning techniques to extract insights from data. Docker is a popular technology for Data Scientists, as it can be used to create and manage software containers for data analysis. By taking this course, you will learn how to use Docker to create and manage software containers for data analysis. This knowledge will be valuable to you as a Data Scientist, as it will allow you to analyze data more efficiently and effectively.
Software Engineer
Software Engineers are responsible for designing, developing, and maintaining software systems. They work with a variety of programming languages and technologies to create software that meets the needs of users. Docker is a popular technology for developing and deploying software applications. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as a Software Engineer, as it will allow you to develop and deploy software applications more efficiently.
Web Developer
Web Developers are responsible for designing, developing, and maintaining websites. They work with a variety of programming languages and technologies to create websites that meet the needs of users. Docker is a popular technology for Web Developers, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as a Web Developer, as it will allow you to develop and deploy websites more efficiently.
Systems Administrator
Systems Administrators are responsible for maintaining and managing computer systems. They work with a variety of technologies to ensure that computer systems are running smoothly and efficiently. Docker is a popular technology for Systems Administrators, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as a Systems Administrator, as it will allow you to maintain and manage computer systems more efficiently.
Senior Software Engineer
Senior Software Engineers are responsible for designing, developing, and maintaining software systems. They work with a variety of programming languages and technologies to create software systems that meet the needs of users. Docker is a popular technology for Senior Software Engineers, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as a Senior Software Engineer, as it will allow you to design, develop, and maintain software systems more efficiently.
Principal Software Engineer
Principal Software Engineers are responsible for leading and managing software engineering teams. They work with a variety of technologies to ensure that software engineering teams are working efficiently and effectively. Docker is a popular technology for Principal Software Engineers, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as a Principal Software Engineer, as it will allow you to lead and manage software engineering teams more efficiently and effectively.
Technical Lead
Technical Leads are responsible for leading and managing technical teams. They work with a variety of technologies to ensure that technical teams are working efficiently and effectively. Docker is a popular technology for Technical Leads, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as a Technical Lead, as it will allow you to lead and manage technical teams more efficiently and effectively.
IT Manager
IT Managers are responsible for planning, implementing, and managing IT systems. They work with a variety of technologies to ensure that IT systems meet the needs of businesses. Docker is a popular technology for IT Managers, as it can be used to create and manage software containers. By taking this course, you will learn how to use Docker to create and manage software containers. This knowledge will be valuable to you as an IT Manager, as it will allow you to plan, implement, and manage IT systems more efficiently.
Cloud Architect
Cloud Architects are responsible for designing and implementing cloud computing solutions. They work with a variety of cloud technologies to create solutions that meet the needs of businesses. Docker is a popular technology for Cloud Architects, as it can be used to create and manage software containers in the cloud. By taking this course, you will learn how to use Docker to create and manage software containers in the cloud. This knowledge will be valuable to you as a Cloud Architect, as it will allow you to design and implement cloud computing solutions more efficiently.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Docker for Java Developers.
Provides a comprehensive guide to Docker, covering everything from the basics to advanced topics such as Docker Swarm and Kubernetes. It's a great resource for anyone who wants to learn more about Docker and how to use it in production.
Provides comprehensive coverage of Docker, from its architecture and components to advanced topics such as Docker Swarm and Docker Compose.
Provides a practical and comprehensive guide to Docker and containerization.
Great resource for Java developers who want to learn more about the Java programming language. It covers everything from the basics to advanced topics such as lambdas and streams.
Comprehensive guide to Redis, covering everything from the basics to advanced topics such as clustering and replication. It's a great resource for anyone who wants to learn more about Redis and how to use it in their development process.
Comprehensive guide to MySQL, covering everything from the basics to advanced topics such as replication and performance tuning. It's a great resource for anyone who wants to learn more about MySQL and how to use it in their development process.
Comprehensive guide to MongoDB, covering everything from the basics to advanced topics such as aggregation and replication. It's a great resource for anyone who wants to learn more about MongoDB and how to use it in their development process.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Docker for Java Developers.
Docker - Hands On for Java Developers
Most relevant
Spring Boot Microservices with Spring Cloud Beginner to...
Most relevant
Spring Framework 5: Beginner to Guru
Most relevant
AWS Certified Solutions Architect - Associate (SAA-C03):...
Most relevant
Docker Swarm Mastery: DevOps Style Cluster Orchestration
Most relevant
Deploying Spring Framework 6 Applications Playbook
Most relevant
Docker - SWARM - Hands-on - DevOps
Most relevant
Docker in AWS - Deploy Java Spring Boot to AWS Fargate &...
Most relevant
Testing Spring Boot: Beginner to Guru
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser