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:

  • 17 modules with 106 videos to stream or download
  • Learn the basics of Docker, including containers, networking, volume sharing
  • Develop a superb development workflow with Docker
  • "Dockerize" Your Applications
  • New: Learn the best practices in creating Dockerfiles
  • See how Docker builds images and build your own
  • New: Use BuildKit & Multi-Stage builds for quicker, efficient image building
  • Learn simple and advanced `docker-compose` configurations
  • New: Learn about changes in `docker-compose` 3
  • Use Docker Machine to install and control Docker on remote machines
  • Learn the pain points of Docker and how to avoid them
  • Automate & build production images with your latest code
  • Configure and use S3-backed private registries
  • See how to further 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
  • New: Create a complete CI/CD pipeline, with blue/green deployments, using Amazon ECR, CodeBuild, CodeDeploy, ECS and more

Learn how to use Docker in
development, testing (CI), and production 🚀


Available Modules

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


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


3. Addendum 1

Official Images on Docker Hub

Advanced Dockerfiles: MySQL

4. Wrangling Containers with 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. Addendum 2

Using mysqldump With Docker

Using SequelPro with Docker

6. 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!

7. Remote Docker Servers with Docker Machine

Introducing Docker Machine

Docker Machine with AWS

Docker Compose with Docker Machine

File Permissions with Docker

Installing Docker “Manually”

8. Addendum 3

Reviewing Docker Volumes, Permissions, and Network

9. CI with Jenkins

Installing Jenkins

Configuration Jenkins and Github

Automating Tests

Dealing with Secrets

Cleaning Up After Ourselves

10. 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

11. Preparing Continuous Delivery

Building Production Images

A Local Private Registry

An S3-Backed Private Registry

12. Single-Host Docker Production Setup

Server Setup and Running the App

Application State

Naive Deployment

Rolling Deployment

Automating Deployments

13. 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

14. Building with BuildKit

Building with BuildKit

Multistage Builds

Busting Build Cache

Target and Cache

15. Updated Docker Image (2020)


New App Image

New Node Image


Permissions and Gosu

Perms and Gosu Continued

Updating the Node Container

16. Docker Compose V3

Docker Compose Versioning

Extending Docker Compose 3

Compose and Env Vars

17. 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


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).