Finally, a Docker tutorial
that dives deep

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

Get started immediately! You'll receive course modules
Dockerizing Your Applications and get updates on any new announcements!

Want more? Learn more about containers!

  free willy

If you're tired of diving into incomplete / outdated documentation, or getting no response to your questions, this course is for you!

Taylor 'The Man' Otwell

Taylor Otwell, creator of Laravel

Image

What You'll Learn


This is a comprehensive course in the many uses of Docker.
From playing to developing, testing to deploying, we'll cover it all in a way that is easy to understand.

Image

Development

We start with the basics and quickly move into how to use Docker in development.

We'll cover:

  • Installing Docker
  • Getting familiar with the docker command
  • Running containers, seeing their intended uses and limitations
  • Building and managing images
  • New: Build images with BuildKit and Multi-stage builds
  • Efficient Dockerfiles
  • Using multiple containers
  • New: Orchestrating containers with docker-compose version 2 and 3
  • Development Workflows
Image

Testing & CI

We use Docker to create a testing and CI process.

We'll cover:

  • Setting up and controlling Docker with docker-machine
  • Installing and configuring Jenkins
  • Automating code tests and image builds
  • Saving images to private Docker registries, backed by S3
  • Creating a CI workflow (automated testing) with Jenkins
  • New: Creating a CI/CD workflow with AWS CodeBuild
Image

Production

Docker in production is complex. We’ll see how the latest tooling makes it easier.

We'll cover:

  • Docker in production on single-hosts
  • Using Docker Registry notifications
  • What docker swarm is and how to use it
  • Advanced Docker networking
  • Building a multi-server production environment
  • Automating rolling deployments
  • New: A complete CI/CD pipeline using Amazon ECS with Blue/Green deployments
Image Image

What people are saying:


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

Get started immediately! You'll receive course modules
Dockerizing Your Applications and get updates on any new announcements!

Want more? Learn more about containers!

Available Modules

1. Introduction

Image

Course Introduction

Image

Is this still relevant?

2. Docker Basics

Image

Installing Docker for Mac/Windows

Image

The Docker Commands

Image

Your First Container

Image

Inspecting Containers

Image

Cleaning Up

Image

Interacting With a Container (bash)

Image

Nginx & Sharing Ports

Image

Sharing Volumes

Image

Review

3. Docker Images & Everyday Use

Image

Committing Changes

Image

The Dockerfile

Image

Building a PHP Image

Image

Linking Nginx & PHP Containers

Image

Pushing to Docker Hub

Image

Linking the Full Stack

Image

Docker Networking

Image

Docker Volumes

Image

Review

4. Addendum 1

Image

Official Images on Docker Hub

Image

Advanced Dockerfiles: MySQL

5. Wrangling Containers with Docker Compose

Image

Modern Docker Compose

Image

Introducing Docker Compose

Image

Docker Compose Basics

Image

Serving a Real Application

Image

Building Images with Docker Compose

Image

Explaining the “docker-compose up” Command

Image

Variables with Docker Compose

Image

Extending Docker Compose Files

6. Docker Compose V3

Image

Docker Compose Versioning

Image

Extending Docker Compose 3

Image

Compose and Env Vars

7. Addendum 2

Image

Using mysqldump With Docker

Image

Using SequelPro with Docker

8. Dockerizing Your Applications

Image

Dockerizing Your Application Intro

Image

Getting Started with an App

Image

Creating our Project Images

Image

Our Basic Docker Compose File

Image

A Better Docker Compose File

Image

"This Is Ridiculous, We Need Help"

Image

The Workflow You Always Wanted

Image

Extending Docker Compose for Dev and CI

Image

Docker Compose Details for CI (and faster tests!)

Image

Review Time!

Image

Check Out Laravel Sail

9. Docker Machines (depreciated)

Image

Introducing Docker Machine

Image

Docker Machine with AWS

Image

Docker Compose with Docker Machine

Image

File Permissions with Docker

Image

Installing Docker “Manually”

10. Addendum 3

Image

Reviewing Docker Volumes, Permissions, and Network

11. CI with Jenkins

Image

Installing Jenkins

Image

Configuration Jenkins and Github

Image

Automating Tests

Image

Dealing with Secrets

Image

Cleaning Up After Ourselves

12. CI with GitHub Actions

Image

Don't Skip the Jenkins Module

Image

What are GitHub Actions?

Image

Preparing the App

Image

Defining the GitHub Actions

Image

Building the Docker Image

Image

Using Service Containers

13. Preparing Continuous Delivery

Image

Building Production Images

Image

A Local Private Registry

Image

An S3-Backed Private Registry

14. Single-Host Docker Production Setup

Image

Server Setup and Running the App

Image

Application State

Image

Naive Deployment

Image

Rolling Deployment

Image

Automating Deployments

15. Docker Swarm

Image

What is Docker Swarm

Image

Server Cluster Setup

Image

Registry with Swarm

Image

Running Applications

Image

Load Balancer as Entry Point

Image

Rolling Updates

Image

Docker Secrets

Image

DNS and Service Discovery

16. Building with BuildKit

Image

Building with BuildKit

Image

Multistage Builds

Image

Busting Build Cache

Image

Target and Cache

17. Updated Docker Image (2020)

Image

Overview

Image

New App Image

Image

New Node Image

Image

Using ENTRYPOINT

Image

Permissions and Gosu

Image

Perms and Gosu Continued

Image

Updating the Node Container

18. Production Images (2023)

Image

How I Make Production Images

Image

The Base Image

Image

The Production Image

Image

The Reusable Image

19. Amazon ECS

Image

ECS Introduction

Image

A New Application

Image

Dockerizing Our Application

Image

A Helper Script

Image

Testing our Application

Image

Private Registry with ECR

Image

CodeBuild Setup

Image

CodeBuild IAM

Image

CodeBuild Success

Image

Production Docker Image

Image

Building with Build Cache

Image

Using S3 for Secure Files

Image

ECS, Tasks, and Clusters

Image

Running Artisan Commands

Image

ECS Services and Load Balancers

Image

Rolling Deployments

Image

Blue/Green Deployment Setup

Image

Blue/Green Deployment Trigger

Image

Automating Deployments in CodeBuild

Image

CodeBuild IAM Updates

Image

Application Logs to CloudWatch

20. Kubernetes

Image

The What and When

Image

Managed Kubernetes

Image

What We'll Learn

Image

Creating a Cluster

Image

Your First Pod

Image

Declarative Syntax

Image

Deployments

Image

Services

Image

Service Load Balancer

Image

Ingress

Image

StatefulSet (database)

Image

Configuration and Secrets


The course is ready to buy!
Learn how to effectively use Docker in development, testing, and in production!

🐳   Buy Now $139.00

About

the true grumpy programmer, don't be fooled by imitation

I'm Chris Fidao. I wrote the Servers for Hackers eBook, and publish related videos at the Servers for Hackers video site. I also curate the Servers for Hackers newsletter, which is read by over 12,000 programmers who want to learn about servers.

I'm also the author of the Deploy PHP! video series, a video series about automating your deployments. A few years ago, I wrote Implementing Laravel, a book all about coding in Laravel - now offered free!

FAQ

What is this?

Shipping Docker is a video series about Docker.

Is the course complete?

Shipping Docker is now officially released, although that doesn't mean I'm done adding new videos to it!

Is future content free?

Yes! Future added videos are free for those who have purchased Shipping Docker.

However, for any really huge topics (like if I added a start-to-finish Kubernetes course), I may decide to make that an "upgrade", at extra cost.

Is Shipping Docker free?

No, Shipping Docker is not free. However, I do have a ton of free Docker videos! You can find some premium ones by signing up above and by visiting the Container section of the site.

I signed up and got some free courses - Are these a large portion of the actual course?

Only the Dockerizing Your Application course is an actual module with Shipping Docker. All other courses and videos are free, extra lessons that expand on some specific aspects of Docker.

The full Shipping Docker course goes into more detail, including covering many "gotchas" / trouble areas that you are likely to hit.

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.