Docker for Beginners: DevOps for Java & Spring Boot

Docker for Beginners. DevOps for Java Spring Boot Microservices. Get Hands-on with Docker.
4.69 (3317 reviews)
Udemy
platform
English
language
Other
category
Docker for Beginners: DevOps for Java & Spring Boot
38 910
students
6.5 hours
content
Nov 2023
last update
$19.99
regular price

Why take this course?

Great overview of the steps involved in containerizing a Java Spring Boot application with Docker, including setting up microservices with Eureka and Zuul, and adding distributed tracing with Zipkin and RabbitMQ. Here's a brief outline of how you can proceed with each step based on the content provided:

03 Step 03 - Understanding ENTRYPOINT, CMD, COPY and ADD instructions

  • ENTRYPOINT: This is a command that needs to be run when an image is executed as a container. It's part of the image's definition but not executed during the build.
  • CMD: The default command to execute when the container is run. There can be multiple CMDs, and the one that matches the architecture (386 or amd64) will be used.
  • COPY and ADD: These commands are used to transfer files from the build context into the image. COPY for readable source files and ADD can also handle remote sources and create directories.

03 Step 04 - Pushing 02 Spring Boot Todo Web Application to Docker Hub

  • Tag your Docker image with the appropriate repository on Docker Hub (e.g., springboot-todo:latest).
  • Push the tagged image to your Docker Hub repository using the docker push command.

04 Step 01 - Code Review of 03 Todo Web Application MySQL

  • Ensure that the application has the necessary dependencies and configurations to connect to a MySQL database.

04 Step 02 - Running MySQL as Docker Container on Local

  • Use docker run to start a MySQL container with the appropriate image tag, command, and any environment variables needed for configuration.

04 Step 03 - Connect Spring Boot Todo Web App to MySQL on Local

  • Update the data source configuration in your Spring Boot application to connect to the local MySQL instance running inside a Docker container.

04 Step 04 - Create Docker Image for 03 Todo Web Application and Use Link to connect

  • Add the necessary instructions to your Dockerfile to create an image that includes both the web application and its dependencies.
  • Use Docker's linking mechanism (or the more modern user-defined networks) to allow communication between the MySQL and web application containers.

04 Step 05 - Exploring Docker Networking - HOST, BRIDGE and NONE

  • Understand how different networking options work with Docker: HOST, BRIDGE, and NONE.

04 Step 06 - Creating a Custom Network and Connect MySQL and WebApplication to the network

  • Create a custom user-defined network using docker network create.
  • Connect your running containers to this new network.

04 Step 07 - Using Docker Volumes to Persist Data

  • Use Docker volumes to store persistent data, such as database files, outside the container lifecycle.

04 Step 08 - Playing with Docker Compose

  • Write a docker-compose.yml file that defines and runs multi-container Docker applications.

05 Step 01 - Exploring 04 Java Full Stack Spring Boot React App

  • Review the architecture and components of a full-stack Spring Boot React application.

05 Step 02 - Running React Frontend in Local

  • Use create-react-app or similar tools to start the React frontend locally.

05 Step 03 - Containerizing Java REST API Backend

  • Create a Dockerfile for the Java REST API backend.

05 Step 04 - Creating Multi-Stage Docker Build for React Frontend Code

  • Use multi-stage builds to optimize the React application Docker image by using one stage to build the app and another to serve it.

05 Step 08 - Dockerizing the Full Stack Application

  • Combine both the React frontend and Java REST API backend into a single docker-compose.yml file for easy deployment.

05 Step 09 - Running the Full Stack Application with Docker Compose

  • Use docker-compose up to run the full stack application locally.

06 Step 01 - Microservices Architecture Overview

  • Understand the principles of microservices architecture, including separation of concerns, independent scaling, and resilience.

06 Step 02 - Designing a Microservice with Spring Cloud

  • Use Spring Cloud for creating a microservice that can easily be integrated into a microservices ecosystem.

06 Step 03 - Service Discovery with Spring Cloud Netflix Eureka

  • Set up Eureka for service discovery and registration in a microservices architecture.

06 Step 04 - API Gateway with Spring Cloud Gateway

  • Implement an API gateway using Spring Cloud Gateway to route requests to the appropriate microservice.

07 Step 01 - Introduction to Docker Swarm

  • Understand what Docker Swarm is and how it enables clustering of Docker hosts.

07 Step 02 - Setting Up a Docker Swarm Cluster

  • Initialize a Swarm cluster and manage nodes and services within the cluster.

07 Step 03 - Deploying Microservices on Docker Swarm

  • Use docker service deploy to run microservices as services in the Swarm cluster.

09 Step 01 - Introduction to Zipkin and Update Microservices to Connect to Zipkin

  • Integrate your microservices with Zipkin for distributed tracing, which will help you visualize and debug inter-service calls.

09 Step 02 - Using Docker Compose to Launch Zipkin, RabbitMq and Microservices

  • Define all the necessary services (Zipkin, RabbitMQ, microservices) in a docker-compose.yml file for easy orchestration.

09 Step 03 - Running Zipkin, RabbitMq and Microservices

  • Start all services together using docker-compose up, ensuring that they can communicate with each other as expected.

09 Step 04 - Thank You

  • Congratulations on completing the learning path! You now have a fully containerized, microservices-based application with tracing capabilities.

Remember to follow best practices for coding, security, and deployment throughout your development process. Good luck!

Course Gallery

Docker for Beginners: DevOps for Java & Spring Boot – Screenshot 1
Screenshot 1Docker for Beginners: DevOps for Java & Spring Boot
Docker for Beginners: DevOps for Java & Spring Boot – Screenshot 2
Screenshot 2Docker for Beginners: DevOps for Java & Spring Boot
Docker for Beginners: DevOps for Java & Spring Boot – Screenshot 3
Screenshot 3Docker for Beginners: DevOps for Java & Spring Boot
Docker for Beginners: DevOps for Java & Spring Boot – Screenshot 4
Screenshot 4Docker for Beginners: DevOps for Java & Spring Boot

Loading charts...

Comidoc Review

Our Verdict

Gain valuable hands-on experience and theoretical knowledge of Docker for Java Spring Boot developers in this in-depth course. However, be prepared for potential outdated examples, limited support, and documentation references. Despite these issues, it's an effective starting point to learn Docker and microservices concepts. Recommended for those willing to dive into troubleshooting or looking for a foundational understanding before moving on to more advanced material.

What We Liked

  • In-depth introduction to Docker for Java and Spring Boot developers, covering basics and advanced topics such as Docker commands, architecture, and networking
  • Hands-on experience with containerizing various Java Spring Boot projects, including Todo Web Application, Full Stack Application, and Microservices
  • Learners will create Docker images for 8 projects using Dockerfile, Maven plugins, and best practices for caching and multi-stage builds
  • Covers Docker Compose for managing multiple containers and running services like MySQL, RabbitMQ, Zipkin, Eureka Naming Server, and Zuul API Gateway

Potential Drawbacks

  • Some examples may not work as expected due to the course's age (2019) or instructor's lack of timely updates and support for user questions
  • Instructions could be more explicit regarding Dockerfile commands and links to official documentation, causing confusion for some learners
  • Occasional blockers encountered during the course that disrupt the flow and require additional troubleshooting efforts from the learner
  • Examples may not run on newer systems like M1 Macs without modification or provided arm64 images
2582160
udemy ID
29/09/2019
course created date
29/10/2019
course indexed date
Bot
course submited by