@rob_rich

Docker is more
than just
kernel virtualization

by Rob Richardson

@rob_rich

https://robrich.org/

About Me

Rob Richardson is a software craftsman building web properties in ASP.NET and Node, Angular and React. He's a frequent speaker at conferences, user groups, and community events, and a diligent teacher and student of high quality software development. You can find this and other talks on https://robrich.org/presentations and follow him on twitter at @rob_rich.

"Docker: VM++"

Docker is

  • ephemeral
  • isomorphic
  • deterministic


Therefore Docker is

ideal platform for dev & ops

  • clearly delineates duties
  • clean communication strategy

Docker is

  • ephemeral (short-lived)
  • isomorphic (unchanging)
  • deterministic (same every time)


Therefore Docker is

ideal platform for dev & ops

  • clearly delineates duties
  • clean communication strategy

What is Docker?

Docker is an ecosystem around Container Virtualization

What are Containers?

Light-weight kernel virtualization

What is Docker?

A suite of command-line tools for
creating, running, and sharing containers

Containers vs VMs

vm vs container

Source: http://www.zdnet.com/article/what-is-docker-and-why-is-it-so-darn-popular/

Containers

virtualize and share the host kernel

must match host kernel:

  • Linux containers run on a Linux host
  • Windows Server containers run on a Windows host

Host Docker in a VM

docker nested in a vm

Docker Ecosystem

docker ecosystem

Download: https://robrich.org/slides/welcome-to-docker/docker-ecosystem.pdf

DEMO: Dockerfile

Layered Filesystem

Reading from the filesystem

Source: https://docs.docker.com/engine/userguide/storagedriver/aufs-driver/

Layered Filesystem

source

  • read/write layer
  • demo
    • CMD ["node" "server"]
    • EXPOSE 3000/tcp
    • server.js
    • WORKDIR /app
  • Node
    • Install Yarn
    • Install Node
    • Install gpg
    • node user/group
  • buildpack-deps:jessie
    • ... steps ...
  • parent image
    • ... steps ...
  • parent image
    • ... steps ...

Layered Filesystem

Only downloads each layer to disk once

because layers don't change

docker history demo

docker ecosystem

Download: https://robrich.org/slides/welcome-to-docker/docker-ecosystem.pdf

DEMO: build image, run container

Docker Magic

Inside the Container:

  • A machine
  • Unique IP, hostname
  • Build your perfect snowflake
 

Outside the Container:

  • A process
  • Plug in power and internet
  • Restart quickly
  • Scale by launching more

Docker Magic

Want another?

"docker run" it again

Docker is

  • - ephemeral (short-lived)
  • ✔ isomorphic (unchanging)
  • ✔ deterministic (same every time)


Therefore Docker is

ideal platform for dev & ops

  • clearly delineates duties
  • clean communication strategy

Social Change

Docker is

Kernel virtualization with containers

Docker is

The ecosystem around containers

Docker is

The culture shift with containers