Docker: Beyond the Basics (CI & CD)

Once you are comfortable with Docker basics (what it is and how it works), the next step is to dive into Docker tools and services for continuous integration (CI) and continuous deployment (CD). Through a mix of lecture and hands-on exercises, Sean Kane walks you through container image management with Docker Distribution, continuous integration using Jenkins with Docker, and using Docker Swarm for building Docker clusters with simple orchestration. In just two three-hour sessions, you’ll move beyond Docker fundamentals and learn how to streamline your processes and make your development and deployment workflows smoother, repeatable, and automated.

What you'll learn-and how you can apply it

By the end of this live, online course, you’ll understand:

What Docker Compose is for and how to use it

What Docker Distribution is and how to use it

What Docker Swarm is and how to use it

How Docker can be used to streamline continuous integration

And you’ll be able to:

Set up a private Docker registry with Docker Distribution

Set up a Jenkins-based continuous integration pipeline in Docker

Utilize Docker Swarm to build robust Docker cluster orchestration

This training course is for you because...

You’re a software engineer who wants to use Docker to streamline your software delivery pipeline, use Jenkins with Docker to automate your testing pipeline, and deploy your containers in scalable production clusters.

You’re an operations engineer who wants to learn how to use Docker Swarm for creating Docker clusters for deploying and managing containers.

You’re a team leader who wants to see how your organization and team can use Docker to improve your DevOps efforts, standardize and streamline your software processes, and free up your engineers to focus on business goals.

About your instructor

Sean P. Kane is currently Lead Site Reliability Engineer at New Relic. He has had a long career in production operations, with many diverse roles across a broad range of industries. In addition to spending his spare time writing, teaching, and speaking about modern production operations, Sean is an avid traveler, hiker, and camper. He lives in the US Pacific Northwest with his wife, children, and dog(s).

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Lecture: An overview of the testing tools ecosystem; an overview of Jenkins and how it can be used with Docker; the Jenkins UI, how it works, and what Jenkins plugins the project relies on

Hands-on exercise: Download and launch the Jenkins Docker Compose project and follow along and with your individual Jenkins instance

Day Two

Jenkins: Part 2 (85 minutes)

Lecture: A review of the previous day; an overview of the Docker-based project that you are going to build and test via Jenkins; the components and wiring needed to build a basic CI flow; an exploration of a broken build and how to use the CI workflow to automatically detect this after the code is committed

Hands-on exercise: Using the Jenkins Docker Compose project from Day One, piece together the individual steps of a CI flow; build off a working code branch and test the resulting Docker container; change to a Git branch with a broken commit and try to build your project; after an in-class review of your project, commit a bug fix to the project and then resubmit your code to the CI flow

Break (10 minutes)

Docker Swarm (95 minutes)

Lecture: An overview of the orchestration tools ecosystem; an overview of Docker Swarm and the various scheduling algorithms and constraints available; how to perform rolling updates and draining a node; load balancing, using HAProxy to provide VIPs for your services, and Clair security scanning; an overview of managing secrets with Docker Swarm

Hands-on exercise: Start two additional virtual machines and create a Swarm cluster; utilize Jenkins to deploy a working build to your Swarm cluster; inspect, scale, and then delete your service; modify Jenkins to deploy your service via a rolling update; modify your service to utilize secrets in Swarm