Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Docker

RobEarlam
August 10, 2019

Introduction to Docker

I started my journey with containers around 18 months ago, and I felt a bit late to the game. By this time the technology & the community were quite mature. I would attend conferences like DDD and most of the Docker/Container sessions were covering intermediate or advanced topics, whereas I was more interested in seeing a ‘Docker 101’ session. My aim for this, is for it to be the session I wish I had been able to see.

This session will be an introduction to Docker & Containers. I will cover the history of containers & the problems they were created to combat. My session will start with a few slides on the theory of how containers function, what they are, and crucially, what they aren’t. Then I’ll move to show docker in action. For the demo portion of the session I will walk through some basic scenarios, covering how to create a Dockerfile to wrap a .NET Core application into a Docker image, then create an container based on that image. I will then show how to combine multiple containers together to create a working system, this will consist of the .NET Core application used in the previous demo, with a SQL Server back-end. I will achieve this by using docker-compose to pull the two together.

This will be an introductory session for people who have heard of Docker, but haven’t had a chance to use it themselves. We will cover the key concepts of Images, Containers, Volumes & Networking, and the demo portion will touch on all of these.

RobEarlam

August 10, 2019
Tweet

More Decks by RobEarlam

Other Decks in Programming

Transcript

  1. @RobEarlam
    An Introduction to
    Docker & Containers
    Rob Earlam

    View Slide

  2. @RobEarlam
    COFFEE BY WIFI BY CHILDCARE BY

    View Slide

  3. @RobEarlam
    Rob Earlam
    Who am I?
    https://robearlam.com
    https://twitter.com/robearlam
    https://www.linkedin.com/in/rob-earlam/
    https://github.com/robearlam

    View Slide

  4. @RobEarlam
    @RobEarlam
    Dependencies
    Environments
    Upgrades
    Operating
    Systems
    Deployments

    View Slide

  5. @RobEarlam
    Application
    Dependencies Libraries
    Configuration
    Other
    @RobEarlam

    View Slide

  6. @RobEarlam
    @RobEarlam
    What is a Container?
    How is a container
    different from a VM?

    View Slide

  7. @RobEarlam
    Infrastructure
    Hypervisor
    Virtual Machine
    Operating
    System
    Application A
    Virtual Machine
    Operating
    System
    Application C
    Virtual Machine
    Operating
    System
    Application B
    Infrastructure
    Host Operating System
    Docker
    Application A
    Application B
    Application C
    Application D
    Application E
    Application F
    @RobEarlam
    Virtual Machines vs Containers

    View Slide

  8. @RobEarlam
    @RobEarlam
    Images & Containers
    Image X
    abcd1234 xx MB
    abcd1234 xx MB
    abcd1234 xx MB
    abcd1234 xx MB
    Container X
    abcd1234 xx MB
    abcd1234 xx MB
    abcd1234 xx MB
    abcd1234 xx MB
    Thin R/W layer

    View Slide

  9. @RobEarlam
    @RobEarlam
    Registries
    https://hub.docker.com/

    View Slide

  10. @RobEarlam
    https://hub.docker.com
    Docker
    Daemon / CLI
    Local Registry
    Containers
    @RobEarlam
    Images, Containers & Registries

    View Slide

  11. @RobEarlam
    @RobEarlam
    Docker
    Daemon / CLI
    Containers
    Volumes
    Local Registry

    View Slide

  12. @RobEarlam
    Networking
    @RobEarlam
    Docker
    Daemon / CLI
    Containers
    Local Registry

    View Slide

  13. @RobEarlam
    @RobEarlam
    Docker
    Daemon / CLI
    Containers
    Developer Experience
    Local Registry

    View Slide

  14. @RobEarlam
    @RobEarlam
    Conclusion
    Images
    Containers
    Registries
    Volumes
    Networking
    Container vs VM
    Developer
    Experience

    View Slide

  15. @RobEarlam
    Questions?
    https://robearlam.com
    https://twitter.com/robearlam
    https://www.linkedin.com/in/rob-earlam/
    https://github.com/robearlam

    View Slide