Finally, a Docker tutorial
that dives deep

Learn how to use Docker in development, testing, and production.

Wondering what this course is about? See more information here!

Available Now

Get immediate access to the following:

  • 20 modules with 127 videos to stream or download
  • Learn the basics of Docker, including containers, networking, volume sharing
  • Develop a superb development workflow with Docker
  • ๐Ÿš€ Updated: "Dockerize" Your Applications
  • ๐Ÿš€ New: How I create and automate production images
  • Recent: Best practices in building modern images in Dockerfile
  • Recent: Use BuildKit & Multi-Stage builds for quicker, efficient image building
  • ๐Ÿš€ Updated: Simple-to-advanced, fully-explained `docker compose`
  • Learn the pain points of Docker and how to avoid them
  • Configure and use S3-backed private registries
  • ๐Ÿš€ Updated: Configure GitHub Actions to and build up a Continuous Delivery pipeline
  • Configure Jenkins to and build up a Continuous Delivery pipeline
  • See how to run and deploy Docker on on single-host setups without downtime
  • See how to configure and use Docker Swarm for production
  • Recent: Create a complete CI/CD pipeline, with blue/green deployments, using Amazon ECR, CodeBuild, CodeDeploy, ECS and more
  • New: Kubernetes! I was (finally) forced to learn this at work, and now you can benefit! It's pretty cool - we ship a real app.

Learn how to use Docker in
development, testing (CI), and production ๐Ÿš€

 

Available Modules

0. Introduction

Course Introduction

Is this still relevant?

1. Docker Basics

Installing Docker for Mac/Windows

The Docker Commands

Your First Container

Inspecting Containers

Cleaning Up

Interacting With a Container (bash)

Nginx & Sharing Ports

Sharing Volumes

Review

2. Docker Images & Everyday Use

Committing Changes

The Dockerfile

Building a PHP Image

Linking Nginx & PHP Containers

Pushing to Docker Hub

Linking the Full Stack

Docker Networking

Docker Volumes

Review

3. Addendum 1

Official Images on Docker Hub

Advanced Dockerfiles: MySQL

4. Wrangling Containers with Docker Compose

Modern Docker Compose

Introducing Docker Compose

Docker Compose Basics

Serving a Real Application

Building Images with Docker Compose

Explaining the โ€œdocker-compose upโ€ Command

Variables with Docker Compose

Extending Docker Compose Files

5. Docker Compose V3

Docker Compose Versioning

Extending Docker Compose 3

Compose and Env Vars

6. Addendum 2

Using mysqldump With Docker

Using SequelPro with Docker

7. Dockerizing Your Applications

Dockerizing Your Application Intro

Getting Started with an App

Creating our Project Images

Our Basic Docker Compose File

A Better Docker Compose File

"This Is Ridiculous, We Need Help"

The Workflow You Always Wanted

Extending Docker Compose for Dev and CI

Docker Compose Details for CI (and faster tests!)

Review Time!

Check Out Laravel Sail

8. Docker Machines (depreciated)

Introducing Docker Machine

Docker Machine with AWS

Docker Compose with Docker Machine

File Permissions with Docker

Installing Docker โ€œManuallyโ€

9. Addendum 3

Reviewing Docker Volumes, Permissions, and Network

10. CI with Jenkins

Installing Jenkins

Configuration Jenkins and Github

Automating Tests

Dealing with Secrets

Cleaning Up After Ourselves

11. CI with GitHub Actions

Don't Skip the Jenkins Module

What are GitHub Actions?

Preparing the App

Defining the GitHub Actions

Building the Docker Image

Using Service Containers

12. Preparing Continuous Delivery

Building Production Images

A Local Private Registry

An S3-Backed Private Registry

13. Single-Host Docker Production Setup

Server Setup and Running the App

Application State

Naive Deployment

Rolling Deployment

Automating Deployments

14. Docker Swarm

What is Docker Swarm

Server Cluster Setup

Registry with Swarm

Running Applications

Load Balancer as Entry Point

Rolling Updates

Docker Secrets

DNS and Service Discovery

15. Building with BuildKit

Building with BuildKit

Multistage Builds

Busting Build Cache

Target and Cache

16. Updated Docker Image (2020)

Overview

New App Image

New Node Image

Using ENTRYPOINT

Permissions and Gosu

Perms and Gosu Continued

Updating the Node Container

17. Production Images (2023)

How I Make Production Images

The Base Image

The Production Image

The Reusable Image

18. Amazon ECS

ECS Introduction

A New Application

Dockerizing Our Application

A Helper Script

Testing our Application

Private Registry with ECR

CodeBuild Setup

CodeBuild IAM

CodeBuild Success

Production Docker Image

Building with Build Cache

Using S3 for Secure Files

ECS, Tasks, and Clusters

Running Artisan Commands

ECS Services and Load Balancers

Rolling Deployments

Blue/Green Deployment Setup

Blue/Green Deployment Trigger

Automating Deployments in CodeBuild

CodeBuild IAM Updates

Application Logs to CloudWatch

19. Kubernetes

The What and When

Managed Kubernetes

What We'll Learn

Creating a Cluster

Your First Pod

Declarative Syntax

Deployments

Services

Service Load Balancer

Ingress

StatefulSet (database)

Configuration and Secrets

https://www.youtube.com/watch?v=L1BDM1oBRJ8

FAQ

What is this?

Shipping Docker is a video series about Docker. You can read more about it here.

Where can I view the videos?

Upon purchase, an account will be created for you (if one doesn't already exist). You can then access this site any time to stream or download the videos.

Can I pay with PayPal?

Yes, in two steps:

  1. Head to PayPal Here.
  2. Note your email in the "special instructions" area, otherwise I can't create an account for you !

Is there discounted group pricing ?

Yes! You can purchase multiple licenses for your team. You can to discuss the details.

What shell theme am I using in the videos?

I'm using the zsh shell, via oh-my-zsh. The theme is "agnoster". You'll need the Powerline font - details here.

I receive an error when attempting to purchase!

Some ad-blockers are not working well with Stripe - in particular, uBlock has caused some issues. If you disable your ad blocker and still can't purchase, you can ! (Note however that I can't do anything about charges that fail on Stripe's or your bank's end).