59
Learning Docker From Square One Developer Evangelist, Codefresh Chloe Condon @chloecondon

Learning Docker from Square One

Embed Size (px)

Citation preview

Page 1: Learning Docker from Square One

Learning Docker From Square One

Developer Evangelist, Codefresh

Chloe Condon

@chloecondon

Page 2: Learning Docker from Square One
Page 3: Learning Docker from Square One

I’m Whaley Glad You’re Here! 🐳

Me at my last DockerCon!

Page 4: Learning Docker from Square One

Our Docker journey begins…

Hi, I’m Chloe!

Page 5: Learning Docker from Square One
Page 6: Learning Docker from Square One
Page 7: Learning Docker from Square One

Now a Developer Evangelist(Woo! Thanks Docker! 🎉 )

Page 8: Learning Docker from Square One

Let’s Start From the Very Beginning

“A very good place to start…”

@chloecondon

Page 9: Learning Docker from Square One

Images & Containers• Layers• DockerHub• Official Images• Tagging/Pushing• Dockerfiles

I’ll Show You A Thing Or Two About…Volumes• Persistant data• Bind MountingDocker Compose• yaml files• Compose commands• Building images

@chloecondon

Page 10: Learning Docker from Square One

Demo Time!

Page 11: Learning Docker from Square One

Images & Containers

What’s the difference? 🤔

@chloecondon

Page 12: Learning Docker from Square One

Let’s Break it Down…

An image is an application you’d like to run

A container is a running instance of an image

@chloecondon

Page 13: Learning Docker from Square One

Let’s Break it Down…

An image is an application you’d like to run

A container is a running instance of an image

@chloecondon

Page 14: Learning Docker from Square One

@chloecondon

Page 15: Learning Docker from Square One

Think of it this way…

Image = DVD 💽

Container = DVD Player 📺

@chloecondon

Page 16: Learning Docker from Square One

Think of it this way…

Docker Image = The basis of a Docker container. Represents a full application.

Container = The standard unit in which the application service resides and executes.

@chloecondon

Page 17: Learning Docker from Square One

@chloecondon

Page 18: Learning Docker from Square One

@chloecondon

Page 19: Learning Docker from Square One

@chloecondon

Page 20: Learning Docker from Square One

So, a container is a lightweight VM, right?

@chloecondon

Page 21: Learning Docker from Square One

So, a container is a lightweight VM, right?

Think of VMs like a 🏡…

…and containers like an 🏢…

…stay with me here!

@chloecondon

Page 22: Learning Docker from Square One

So, a container is a lightweight VM, right?

@chloecondon

Page 23: Learning Docker from Square One

So, a container is a lightweight VM, right?

@chloecondon

Page 24: Learning Docker from Square One

Let’s Review!

@chloecondon

Page 25: Learning Docker from Square One

So, a container is a lightweight VM, right?

“Docker is not a virtualization technology, it’s an application delivery technology” -Mike Coleman

@chloecondon

Page 26: Learning Docker from Square One

Layers

@chloecondon

Page 27: Learning Docker from Square One

Layers

@chloecondon

Page 28: Learning Docker from Square One

Layers

@chloecondon

Page 29: Learning Docker from Square One

Layers

@chloecondon

Page 30: Learning Docker from Square One

Layers

@chloecondon

Page 31: Learning Docker from Square One

Layers

@chloecondon

Page 32: Learning Docker from Square One

DockerHub

@chloecondon

Page 33: Learning Docker from Square One

Tags

@chloecondon

Page 34: Learning Docker from Square One

Enter Tags!

@chloecondon

Page 35: Learning Docker from Square One

Tags

@chloecondon

Page 36: Learning Docker from Square One

Tags

@chloecondon

Page 37: Learning Docker from Square One

Tags

@chloecondon

Page 38: Learning Docker from Square One

Tags… what’s in a name? -Shakespeare… jk

@chloecondon

Page 39: Learning Docker from Square One

Push it!

@chloecondon

Page 40: Learning Docker from Square One

Push it!

@chloecondon

Page 41: Learning Docker from Square One

Push it!

@chloecondon

Page 42: Learning Docker from Square One

Dockerfiles are……instructions…

…that you need to optimize!

@chloecondon

Page 43: Learning Docker from Square One

Things to consider with DockerfilesEphemeral

( unnecessary packages

1 container = 1 concern

Minimal layers

@chloecondon

Page 44: Learning Docker from Square One

@chloecondon

Page 45: Learning Docker from Square One

@chloecondon

Page 46: Learning Docker from Square One

@chloecondon

Page 47: Learning Docker from Square One

@chloecondon

Page 48: Learning Docker from Square One

@chloecondon

Page 49: Learning Docker from Square One

@chloecondon

Page 50: Learning Docker from Square One

@chloecondon

Page 51: Learning Docker from Square One

Volumes

@chloecondon

Page 52: Learning Docker from Square One

Volumes

Data volumes are designed to persist data, independent of the container’s lifecycle.

@chloecondon

Page 53: Learning Docker from Square One

VOLUME [“/data”]

Volumes

@chloecondon

Page 54: Learning Docker from Square One

• Host Volumesdocker run -v /path/on/host:/path/in/container ...

• Anonymous Volumesdocker run -v /path/in/container ...

• Named Volumesdocker volume create somevolumename docker run -v name:/path/in/container ...

Volumes

@chloecondon

Page 55: Learning Docker from Square One

Volumes

@chloecondon

Page 56: Learning Docker from Square One

Docker Compose1. Define with a Dockerfile2. Write a docker-compose.yml3. Run docker-compose up

@chloecondon

Page 57: Learning Docker from Square One

Demo Time!

Page 58: Learning Docker from Square One

Great Resources!• Play with Docker )• Bret Fisher’s class on Udemy *• Docker Docs 🐳• Anything from a Docker Captain! 🚢 (docker.com/captains)• Codefresh 🍃

@chloecondon

Page 59: Learning Docker from Square One

Thank You!@chloecondon on most things!

My articles on Medium cover:• Docker Basics• Volumes• Tags• & much more!

Come to my Hallway Track after this!Otherwise, I’ll be chilling in the foam pit!