Development and Deployment with Docker

by Doug Bell
(he, him, his)
@preaction
preaction
preaction.me/docker
CC-BY-SA 4.0

For navigation help, press ?
For speaker view and notes, press S
For full-screen, press F

What Is Docker?

Not A VM

Not Hardware Simulation

Not Running an OS

Container

Isolate a single process

Load a Linux Distribution

But not a new kernel

Copy Everything

  • Executables
  • Libraries
  • Files

Container:

A complete environment to run a program

Setup is Hard

What is Docker?

Container Management

Container Configuration

Layered File Systems

Multi-Container Applications

Dev Envs

Prod Envs

Scaling

Our First Container

Layered Filesystem

/
/usr/local/bin/perl
/usr/local/lib/site_perl
/usr/local/bin/mojo
/usr/local/lib/site_perl/Mojolicious

Run a Command

Build A Container

Add Prereqs

Expose Ports

Docker Handles Networking

Mount a Volume

Volumes Share

Volumes Persist

Compose an App

Why Docker?

Software Demos

Automated Testing

Horizontal Scaling

Things VMs Do

But faster!

Sources:

  • https://docs.docker.com
  • https://en.wikipedia.org/wiki/Linux_namespaces
  • https://en.wikipedia.org/wiki/UnionFS

Questions?