Introducing Docker
Images and Containers
Containers vs Virtual Machines
Installing Docker is much harder than actually using it. Here we guide you through the process.
Docker in Development and Production
Installing Docker Desktop
How to Check Docker is Working
You'll get a chance to deploy a real (but very small) Java application to a Tomcat based container.
Downloading Images
Running Containers
Port Mappings
Running on EC2 (optional demo)
You'll learn how to use DockerHub to find base images, and how to run containers from them
Docker Hub
Finding Base Images
Classic vs Modern Docker Commands
(Extra) For cygwin users: how to avoid TTY errors
Running Base Containers
Container Lifecycles
Errata - avoid using the :latest image
Practical: Running a Tomcat Container
Dockerfiles define images - you'll learn how to make your images in this section
Building images with "commit"
Dockerfiles
Copying files to images
Images Commands (CMD)
Copy vs Add
Labels vs MAINTAINER
We use Tomcat as an example application to deploy to a container
Setting up the IDE
How to Find Docker Base Images
How to Set the RUN Command in Docker
What Does the Docker EXPOSE Command Do?
Removing the Tomcat Default Applications
Installing a WAR file
Running a Spring Boot application in Docker is really easy!
Spring Boot Applications
You'll want to get your own DockerHub account to publish your images.
Pushing to DockerHub
You'll need to network containers together, especially if building a microservice architecture. It's easy and we learn about the Naming Service in Docker.
Containers and Services
Containers Names and DNS
Network Management
ERRATA: You will need some extra config in the next video...
Connecting to a Database Container
Network Topologies
Is Steve Jobs "notable or awesome"? (optional!)
Volumes enable you to persist some data from a container to disk
Introducing Volumes
Naming Volumes
Mount Points
This is an optional section. We use the fabric8 Docker Maven Plugin to integrate with a Java build process.
Fabric8 Docker Maven Plugin (DMP)
Build Problems with Maven Plugin?
Configuring DMP
Integrating with Maven Lifecycles
Integrating Pushes with Deploy
Jenkins
Starting up multiple containers for a system is tedious. Compose enables us to capture an entire system's architecture in a single text file.
Why Docker Compose?
Errata - use image mysql:5
Compose Files
Startup Order
Running docker-compose
Rolling out changes
To run serious production environments, you need an orchestration system. Kubernetes is the marker leader at the time of writing, but there is one built into Docker - Swarm.
Orchestration Systems
Introducing Swarm
Swarm Services
Warning - disable adblocker / ublock
Play with Docker
Monitoring Service Logs
Chapter 15 - Stacks
Managers vs Workers
Building a Stack
Service Lifecycles
Replicated Services
Routing Mesh
Visualizer
Rolling Updates
Chapter 16: Microservices on EC2
Introducing Fleetman Microservices
Starting an EC2 Cluster
Configuring the Cluster
Deploying a Stack
System Resilience
Service Discovery
Chapter 17 - Goodbye!
Course Close
Bonus Lecture