2017
10 HOURS
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
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
ADDENDUM 1
Official Images on Docker Hub
Advanced Dockerfiles: MySQL
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
ADDENDUM 2
Using mysqldump With Docker
Using SequelPro with Docker
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!
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”
ADDENDUM 3
Reviewing Docker Volumes, Permissions, and Network
CI WITH JENKINS
Installing Jenkins
Configuration Jenkins and Github
Automating Tests
Dealing with Secrets
Cleaning Up After Ourselves
PREPARING CONTINUOUS DELIVERY
Building Production Images
A Local Private Registry
An S3-Backed Private Registry
SINGLE-HOST DOCKER PRODUCTION SETUP
Server Setup and Running the App
Application State
Naive Deployment
Rolling Deployment
Automating Deployments
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